上述代码增长了新的reject办法,供异步操作掉败时调用,同时抽出了resolve和reject共用的部分,形成execute办法。
- //例6
- getUserId()
- .then(getUserJobById)
- .then(function (job) {
- // 处理job
- }, function (error) {
- // getUserId或者getUerJobById时出现的缺点
- console.log(error);
- });
细心的同窗会想到:如不雅在履行成功回调、掉败回调时代码掉足怎么办?对于这类异常,可以应用try-catch捕获缺点,并将bridge promise设为rejected状况。handle办法改革如下:
- function handle(callback) {
- if (state === 'pending') {
- callbacks.push(callback);
- return;
- }
- var cb = state === 'fulfilled' ? callback.onFulfilled : callback.onRejected,
- ret;
- if (cb === null) {
- cb = state === 'fulfilled' ? callback.resolve : callback.reject;
- cb(value);
- return;
- }
- try {
- ret = cb(value);
推荐阅读
16. 美国法律论坛71万账户泄漏,涉国度安然局、FBI等本年4月,达拉斯紧急警备孀体系被黑客入侵。导致该城市的156个紧急戒备器被激活,警笛声持续一个小时,激发市平易近惊恐。 在以前的201>>>详细阅读
本文标题:30分钟,让你彻底明白Promise原理
地址:http://www.17bianji.com/lsqh/35631.html
1/2 1