Javascript 转义NodeJS中的多个嵌套函数
我的Javascript代码如下所示:Javascript 转义NodeJS中的多个嵌套函数,javascript,node.js,promise,es6-promise,Javascript,Node.js,Promise,Es6 Promise,我的Javascript代码如下所示: function someFunction() { // Code somePromise().catch(err => { console.log(err); }); // Mode Code } 如果somePromise()被拒绝,我想退出somePromise().catch和someFunction()。我尝试使用return,但这只允许我逃避somePromise()。catch。是否有任
function someFunction() {
// Code
somePromise().catch(err => {
console.log(err);
});
// Mode Code
}
如果
somePromise()
被拒绝,我想退出somePromise().catch
和someFunction()
。我尝试使用return
,但这只允许我逃避somePromise()。catch
。是否有任何函数允许我打破嵌套循环?您可以通过使用async
/wait
来实现这一点:
function async someFunction() {
// Code
try {
await somePromise();
} catch (err) {
console.log(err);
return; // aborts further execution
}
// More Code
}
有关详细信息,请参阅。Async/await解决了问题,但了解它解决问题的原因很重要 承诺是一种存储连续性的机制。传递给
然后
和catch
的函数存储在承诺中,并在承诺得到解决时执行
要在不使用async
/wait
的情况下解决此问题,您只需返回承诺,然后使用执行承诺未拒绝时应执行的任何代码:
function someFunction() {
// Code
return somePromise()
.then(result => {
// More Code
})
.catch(err => {
console.log(err);
});
}
这本质上就是async
/等待的de sugars。Async/await是围绕状态机的语法糖,它为您连接这些连续性。不抓住一些承诺如何?(删除.catch())不幸的是,这不是我可以使用的选项。