Promise从入门到拿Offer之手写Promise

作者: 团子哒哒 | 来源:发表于2021-01-18 15:54 被阅读0次

    1、Promise构造函数的实现

    Promise构造函数用来声明示例对象,需要传入一个执行器函数。其中包括resolve函数和reject函数,以及几个重要的属性:状态属性、结果属性和回调函数队列。

    构造函数的基本框架

    resolve函数用于异步处理成功后调用的函数。其中包括验证对象状态修改次数,修改promise实例对象状态,异步调用成功的回调函数onResolved。

    resolve函数

    reject函数用于异步处理失败后调用的函数。其中包括验证对象状态修改次数,修改promise实例对象状态,异步调用成功的回调函数onRejected。

    reject函数

    2、Promise的then函数和catch函数实现

    then函数用于为promise指定成功/失败的回调函数,返回值是一个新的promise对象。

    then函数的基本框架

    如果 onResolved/onRejected 不是函数, 可它指定一个默认的函数。若onResolved不是函数,则指定返回的 promise 为一个成功状态, 结果值为 value;若onRejected不是函数,指定返回的 promise 为一个失败状态, 结果值为 reason。否则返回一个新的promise对象。

    否则返回一个新的promise对象。

    用于处理promise成功/失败结果的函数。

    catch函数用于指定失败的回调函数,是then(null, onRejected)的语法糖。

    catch函数

    3、Promise的resolve函数和reject函数实现

    resolve函数 reject函数

    4、Promise的all函数、race函数和any函数实现

    传入的必须是promise对象数组吗?可以为一个常量。其中一个报错,就会进入catch, 其他的promise会正常执行, 在创建之初(实例化)时就执行了。.then()只是拿到他的结果。

    Promise的all函数 race函数 any函数

    相关文章

      网友评论

        本文标题:Promise从入门到拿Offer之手写Promise

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