我在 Angular 7 应用程序中遇到问题。当我有一个 finally 块的承诺时,不会抛出错误!他们在没有注意到的情况下被吞下,当我删除 finally-block 时,它的行为就像预期的那样。
以下是一些示例:使用 vanillaJS(无 Angular 框架),它的工作方式与我期望的一样:一旦您运行代码,它就会将我的 console.logs 打印到控制台并抛出“Uncaught (in promise)”错误. 另见截图。
Promise.resolve()
.then(() => {
console.log('then');
return Promise.reject('This is an error. Please show up in the console, thank you.');
})
.finally(() => {
console.log('finally');
});
截图 vanillaJS
在这里,我们在 Angular 中有相同的代码。请参阅 Stackblitz 以供参考: https ://stackblitz.com/edit/angular-iv7cq2
当我删除“最后”时,它会像我期望的那样抛出错误。使用“finally”,它只会吞下错误。
截图角度
这是为什么?我必须在哪里修改我的代码,以便带有 finally-blocks 的 Promise 也会抛出错误?