Promise的then怎么确定接下来是成功还是失败?

比如我Promise执行成功了,自然要调用then的resolve,然而resolve执行失败了,我希望下一个then执行reject,要怎么做?


问题解决了。

下一个then……………………

本人的意思是:

var p = new Promise((a,b)=>{a()});
p.then(()=>{}, ()=>{}).then(()=>{}, ()=>{console.log('我希望输出这句话。');});

这个要怎么实现?

现在问题已经解决,只要

p.then(()=>{return new Promise((a,b)=>{b()})}, ()=>{}).then(()=>{}, ()=>{console.log('我希望输出这句话。');});

就可以实现了。

图灵社区:【翻译】Promise/A+规范

问题关闭。

阅读 6.4k
2 个回答

then 不是有两个回调么,第一个是成功的,第二个是失败的

new Promise(resolve => {
    resolve("hello");
})
    .then(v => {
        console.log(v);
        return Promise.reject();
        //也可以 throw new Error();
    })
    .then(() => {
        console.log("success");
    }, () => {
        console.log("fail");
    });

resolve的意思是本次promise结束了,成功的,并返回一个新的promise给下一个then执行。

比如,你在resolve里面写了一个错误方法,只要之歌错误不崩溃阻塞整个程序,也是要被Then接收的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题