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

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 关注
  • 1173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信