Angular 2链接的Promise和继续拒绝 [英] Angular 2 chained Promise and passing on reject

查看:61
本文介绍了Angular 2链接的Promise和继续拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

应该是一个简单的问题,但是我找不到有关该操作方法的文档.

Should be a simple question, however I can find no documentation on how to do it.

兑现这样的诺言:

// Making a promise, no problem
let promise = new Promise((resolve, reject) => {
    let data = {}; // do something
    reject(data);
});

// First chain, no problem
promise.then(data => {
    console.log('Success callback', data); // This will not be called
}).catch(err => {
    console.log('Error callback', err); // This WILL be called
})

// Second chain, acts as resolved
.then(data => {
    console.log('Level 2 success', data); // This WILL be called
}).catch(err => {
    console.log('Level 2 error', err); // This will NOT be called
});

我了解,除非我从第一个catch回调中传递拒绝,否则后续的then将被解决.

I understand that unless I pass on the rejection from the first catch callback, then subsequent then's will be handled as resolved.

那么...如何在catch函数中调用拒绝?

So... how to call reject from within the catch function?

推荐答案

请参见 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch

您需要在catch处理程序中引发异常,例如,拒绝第二条链.

You need to throw an exception in the catch handler for example to reject the second chain.

// First chain, no problem
promise.then(data => {
    console.log('Success callback', data); // This will not be called
}).catch(err => {
    console.log('Error callback', err); // This will NOT be called
    throw "zonk";
})

这篇关于Angular 2链接的Promise和继续拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆