ES6详细讲解(三)

2017-06-12  本文已影响0人  哈哈腾飞

        先复习一下异步的概念:多个操作可以同时进行

        了解了这个概念之后,介绍一下工作中经常用到的的promise

第十一个知识点:promise-----承诺

    就是一个对象,用来传递异步操作的数据(消息)

   peding(等待,处理中) ---> resolve(完成,fullFilled)

       ---->rejectd(拒绝,失败)

使用:

var p1 = new Promise(function(resolve,reject){

                                                                //resolve成功了

                                                              //reject失败了

                                                    });

var p1 = new Promise(function(resolvve,reject){

                                                         if(异步处理成功了){

                                                                            resolve(成功的数据)

                                                                              }else{

                                                                                    reject(失败原因)

                                                                                     }

                                                                            })

p1.then(成功(resolve),失败(reject))

p1.then().then()中第二个.then是第一个.then返回的值

 promise用用:ajax配合promise

      

第十二个知识点:catch -----用来捕获错误

           

第十三个知识点:all ------全部,用于将多个Promise对象,组合,包装成一个全新的promise实例


Promise.all([p1,p2,p3,....]);

                                              所有的promise对象,都正确,才走成功

                                              否则,只要有一个错误,是失败了

第十四个知识点:Promise.race ----返回也是一个promise对象

       最先能执行的promise结果,哪个最快,用哪个

如:在异步的时候,哪个先过来就用哪个

Promise.resolve() --------生成一个成功的promise对象

                            语法:Promise.resolve(value)

                                         Promise.resolve(Promise)

第十五个知识点:Generrator -----生成器 

             

                                       是一个函数

                                        可以遍历,Generrator就是一个状态机

                                            语法:

                                                               function show(){    //普通函数

                                                                                                 }

                                                                function* show(){     //generrator函数

                                                                                        yield xxx

                                                                                         }

                                                  形式上:

                                                               a).函数名字前面有*

                                                                b).函数内部使用yield语法

false:表示还没有遍历完true:表示遍历完了 遇到return也是返回true也是结束了

next可以带参数:

                              给上一个yield的值

for....of循环  用来循环数组和Map对象,还可以循环generrtor函数

        

打印出12345

generrator函数放在对象里面


以上第二种方法是不对的,会报错的,在对象中只能用第一个
上一篇下一篇

猜你喜欢

热点阅读