promise 入门

一、promise的用途

1. 主要用于异步计算

2. 可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果

3. 可以在对象之间传递和操作promise,帮助我们处理队列

4. 解决回调地狱的问题

二、异步操作的常见语法


常见promise语法

三、promise 简介


promise写法

四、promise的状态(三个)

        pending: 初始状态--实例化

        fulfilled:【实现】操作成功---resolve

        rejected:操作失败---reject

        promise状态发生改变,就会触发.then()里的响应函数处理后步骤

        promise实例状态改变,不会在变

        promise实例一经创建,执行器立即执行

五、.then() 

        .then() 接收两个函数作为参数,分别代表 fulfilled 和 rejected

        .then() 返回一个新的promise实例,所以它可以链式调用

        .then() 根据promise的最终状态,选择其特定的状态响应函数执行

六、then的嵌套

        .then() 里会有.then() 的情况

        1. 因为.then() 返回的是promise实例

        2. 会等里面的.then() 执行完毕,再执行外面的

七、promise 常用函数

        1. promise.all() 

            批量执行: promise.all([p1, p2, p3, .......]) 用于将多个promise 实例,包装成一个新的promise实例;

             返回的实例就是普通的promise

        2. promise.all() 最常见的就是和.mapI() 连用

        3. 实现队列,使用.forEach()


forEach

        4.promise.resolve()  \   promise.reject()  \  promise.race()

        promise.race类似于promise.all() ,区别在于它有任意一个完成就算完成

         常见用法:把异步操作和定时器放在一起,如果定时器先触发,就认为超时,告知用户;


八、回调包装成promise

        好处:可读性好;返回的结果可以加入任何promise队列

九、async/await

      好处:   赋予JavaScript 以顺序手法编写异步脚本的能力!

                    既保留异步运算的无阻碍特性,还继续使用同步写法;

                    还能正常使用return、 try、catch

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。