当前位置:
首页
文章
前端
详情

Promise从入门到拿Offer之手写Promise

1、Promise构造函数的实现

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

Promise从入门到拿Offer之手写Promise

构造函数的基本框架

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

Promise从入门到拿Offer之手写Promise

resolve函数

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

Promise从入门到拿Offer之手写Promise

reject函数

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

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

Promise从入门到拿Offer之手写Promise

then函数的基本框架

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

Promise从入门到拿Offer之手写Promise

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

Promise从入门到拿Offer之手写Promise

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

Promise从入门到拿Offer之手写Promise

Promise从入门到拿Offer之手写Promise

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

Promise从入门到拿Offer之手写Promise

catch函数

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

Promise从入门到拿Offer之手写Promise

resolve函数

Promise从入门到拿Offer之手写Promise

reject函数

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

Promise从入门到拿Offer之手写Promise

all函数

Promise从入门到拿Offer之手写Promise

race函数

本文转自 https://www.jianshu.com/p/c202658b8d59,如有侵权,请联系删除。

免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。