es6 promise rejected调用顺序?

https://img3.mukewang.com/5bda967d00019b7902500415.jpg

输出结果:
"fail"
111
333

为什么不是:
"fail"
222
444

按照我的理解:
var a = test(2);
返回的Promise对象调用rejected函数,此时传递给第一个then的promise状态应该是rejected, 但是为什么调用的是resolved函数?

thx


一只萌萌小番薯
浏览 516回答 1
1回答

慕村225694

function test(src){  return new Promise((success, fail)=>{    if(src == 1){      success(src);    }else if(src === 2){      fail(src);    }  });}var a = test(2);a.then((src)=>{  console.log('success');}, (src)=>{  console.log('fail');  return Promise.reject();}).then((src)=>{  console.log(src)},(err)=>{  console.log(222)  return Promise.reject();}).then(()=>{  console.log(333)},()=>{  console.log(444)})可以通过设置当前then返回的promise的状态来决定下一个then需要执行的回调函数
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript