ES6(二)

作者: 红笔黑字 | 来源:发表于2019-02-21 12:43 被阅读0次

    1. Promise

    Promise—解决异步操作(内部没变)

    同步-串行    简单、方便
    异步-并发    性能高、体验好
    

    1.1 Promise的使用

    图片.png

    以上是完整版,以下是简版


    图片.png

    1.2 Promise.all的使用

    图片.png

    从上面可以看出,如果其中有一个失败,可能导致整个失败
    同时,如果返回的数据相关联的,也不能用promise,它不能处理复杂的逻数据
    简版:


    图片.png

    2. generator

    生成器/生成器函数

    2.1 generator基本写法

    需要next一步步调用,每次next后会暂停

            function *show2() {
                alert('aaa');
                yield;
                alert('bbbb')
            }
            let gen=show2();
            gen.next();
            gen.next();
    

    2.2 yeild

    1.具有参数
    2.可以return返回

            function* show2() {
                alert('aaa');
                let a=yield;
                alert('bbbb'+a)
            }
            let gen=show2();
            gen.next();
            gen.next(12);
            //接收参数,是在yeild之后,所以在第二个next传参
    
            function* show2() {
                alert('aaa');
                yield 55;
                alert('bbbb');
                return 10
            }
            let gen=show2();
            let res1=gen.next();console.log(res1);//{value: 55, done: false}
            let res2=gen.next();console.log(res2);//{value: 10, done: true}
            //不加return,res2的value就是undefined
    

    2.3 generator和Promise配合使用

    3 async

    和generator类似,不同点:
    1.写法:async开头,无*,
    2.await和yeild类似,但是不异步会直接输出
    3.不用next

            async function show() {
                alert('a');
                await 12;
                alert('b');
            }
            show();
    

    相关文章

      网友评论

        本文标题:ES6(二)

        本文链接:https://www.haomeiwen.com/subject/woefyqtx.html