• (es6学习笔记04)用Proxy进行预处理,promise对象的使用


    Proxy的基本形式,
    第一个花括号代表方法主体,第二个代表Proxy代理处理区域(相当于钩子函数)
    new Proxy({},{})
    get属性是在得到某对象属性值时预处理的方法,接收三个参数
    1、target:得到的目标值
    2、key:目标的key值相当于对象的属性
    3、property:不常用用法未学习,
    set属性,是值你要改变Proxy属性值时,进行的预先处理
    1、target目标值
    2、key目标值
    3、value要改变的值
    4、receiver改变前的原始值
    var pro = new Proxy({
        add: function (val) {
            return val + 10;
        },
        name: 'I am Jspang'
    }, {
        get: function (target, key, property) {
            //console.log(property);
            return target[key];
        },
        set:function (target,key,value,receiver) {
            console.log(`   setting ${key} = ${value}`);
            return target[key] = value;
        }
    });
    console.log(pro.add(1));
    console.log(pro.name);
    pro.name='小哈哈';
    console.log(pro.name);

     apply的使用

    add =function () {
        return '我是哈'
    }
    var handler = {
        apply(target,ctx,args) {
            console.log('dodo');
            console.log(Reflect.apply(...arguments))//我是哈
            return Reflect.apply(...arguments)
        }
    }
    var pro=new Proxy(add,handler);
    console.log(pro())
     promise对象的使用(一个多步操作的过程)
    let ste=1;
    let ste2=2
    function step1(res,rec) {
        console.log('1,洗菜');
        if (ste==1) {
            res('1,洗菜-完成')
        } else {
            rec('1,洗菜-失败')
        }
    }
    function step2(res,rec) {
        console.log('2,做饭');
        if (ste==1) {
            res('2,做饭-完成')
        } else {
            rec('2,做饭-失败')
        }
    }
    function step3(res,rec) {
        console.log('3,吃饭');
        if (ste==1) {
            res('3,吃饭-完成')
        } else {
            rec('3,吃饭-失败')
        }
    }
    new Promise(step1).then(function (val) {
        console.log(val);
        return new Promise(step2)
    }).then(function (val) {
        console.log(val);
        return new Promise(step3)
    }).then(function (val) {
        console.log(val);
        return val
    })
  • 相关阅读:
    设计数据密集型应用(中英双语)
    缓存设计中的热点问题讨论
    Python Twisted
    Python-memcached的使用用法
    四款免费好用的Bootstrap ui编辑器
    8个强大的基于Bootstrap的CSS框架
    盘点国内网站常用的一些 CDN 公共库加速服务
    分布式缓存系统 Memcached 快速入门
    函数缓存 (Function caching)
    Golang新开发者要注意的陷阱和常见错误
  • 原文地址:https://www.cnblogs.com/xiaohaha668/p/10656853.html
Copyright © 2020-2023  润新知