ES6详细讲解(三)

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

        了解了这个概念之后,介绍一下工作中经常用到的的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函数放在对象里面


以上第二种方法是不对的,会报错的,在对象中只能用第一个
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 弄懂js异步 讲异步之前,我们必须掌握一个基础知识-event-loop。 我们知道JavaScript的一大特点...
    DCbryant阅读 7,673评论 0 5
  • 你不知道JS:异步 第三章:Promises 在第二章,我们指出了采用回调来表达异步和管理并发时的两种主要不足:缺...
    purple_force阅读 6,357评论 0 4
  • Promiese 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,语法上说,Pr...
    雨飞飞雨阅读 8,664评论 0 19
  • //本文内容起初摘抄于 阮一峰 作者的译文,用于记录和学习,建议观者移步于原文 概念: 所谓的Promise,...
    曾经过往阅读 5,007评论 0 7
  • 你要做一个披荆斩棘无所不能的女英雄,直到遇见能托付一生的人,再做一个瓶盖都拧不开的小公主。 这世界上没有什么东西是...
    她他社阅读 3,671评论 0 0

友情链接更多精彩内容