为了账号安全,请及时绑定邮箱和手机立即绑定

Promise的链式调用什么原理?

Promise的链式调用什么原理?

海绵宝宝撒 2018-08-23 19:40:24
大家都知道jQuery的链式调用是return this的妙用,那么Promise的呢?比如function start() {       return new Promise((resolve, reject) => {         resolve('start');       });     }          start()       .then(data => {         // promise start         console.log('result of start: ', data);         return Promise.resolve(1); // p1       })       .then(data => {         // promise p1         console.log('result of p1: ', data);         return Promise.reject(2); // p2       })       .then(data => {         // promise p2         console.log('result of p2: ', data);         return Promise.resolve(3); // p3       })       .catch(ex => {         // promise p3         console.log('ex: ', ex);         return Promise.resolve(4); // p4       })       .then(data => {         // promise p4         console.log('result of p4: ', data);       });result of start: startresult of p1: 1ex: 2result of p4: 4第三步,reject的还被下一步的then忽略掉了,这种链式调用是什么原理?怎么实现的?
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

因为啊,每个then都返回一个新的promise,每个then都返回一个新的promise,每个then都返回一个新的promise。
返回的新的promsie会在上一个promise的状态变更改时候开始执行,以此类推,每次返回的新的promise被挂在上一个promise上,就此串成了一串

查看完整回答
反对 回复 2018-08-26
  • 2 回答
  • 0 关注
  • 1234 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号