ES6系列教程1-Promise篇

作者: loushumei | 来源:发表于2019-07-16 11:30 被阅读0次

    理论知识回顾

    Promise 对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你为异步操作的成功和失败分别绑定相应的处理方法(handlers)。 这让异步方法可以像同步方法那样返回值,但并不是立即返回最终执行结果,而是一个能代表未来出现的结果的promise对象

    [状态]

    • pending: 初始状态,既不是成功,也不是失败状态。
    • fulfilled: 意味着操作成功完成。
    • rejected: 意味着操作失败。
    promise的状态

    [方法]

    * Promise.resolve(value)
    • 返回一个状态由给定value决定的Promise对象。
    • 如果该值是thenable(即,带有then方法的对象),返回的Promise对象的最终状态由then方法执行决定;
    • 否则的话(该value为空,基本类型或者不带then方法的对象),返回的Promise对象状态为fulfilled,并且将该value传递给对应的then方法。
    • 通常而言,如果你不知道一个值是否是Promise对象,使用Promise.resolve(value) 来返回一个Promise对象,这样就能将该value以Promise对象形式使用。
    * Promise.reject(reason)
    • 返回一个状态为失败的Promise对象,并将给定的失败信息传递给对应的处理方法
    * Promise.all(iterable)
    • 处理多个promise对象的状态集合,返回一个新的promise对象
    • iterable参数对象里所有的promise对象都成功的时候才会触发成功
    • 任何一个iterable里面的promise对象失败则立即触发该promise对象的失败
    * Promise.race(iterable)
    • iterable参数里的任意一个子promise被成功或失败后,
    • 父promise马上也会用子promise的成功返回值或失败详情作为参数
    • 调用父promise绑定的相应句柄,并返回该promise对象。

    [Promise 原型]

    *Promise.prototype.then(onFulfilled, onRejected)
    • 添加解决(fulfillment)和拒绝(rejection)回调到当前 promise, 返回一个新的 promise.
    * Promise.prototype.catch(onRejected)
    • 添加一个拒绝(rejection) 回调到当前 promise, 返回一个新的promise。
    *Promise.prototype.finally(onFinally)
    • 添加一个事件处理回调于当前promise对象,并且在原promise对象解析完毕后,返回一个新的promise对象。
    • 回调会在当前promise运行完毕后被调用,无论当前promise的状态是完成(fulfilled)还是失败(rejected)

    相关文档参考:

    Promise | MDN

    Promise - 廖雪峰的官方网站

    Promise详解 | CSDN (Promise实际应用及理解)

    Promise内部实现的原理

    相关文章

      网友评论

        本文标题:ES6系列教程1-Promise篇

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