在NodeJS中转义多个嵌套函数

我在Javascript中有如下代码:

function someFunction() {
    // Code
    somePromise().catch(err => {
        console.log(err);
    });
    // Mode Code
}

在拒绝somePromise().catch的情况下,我想同时跳过someFunction()somePromise()。我尝试使用return,但这只允许我转义somePromise().catch。有没有能让我摆脱嵌套循环的功能?

dd164572387 回答:在NodeJS中转义多个嵌套函数

您可以使用async / await来做到这一点:

function async someFunction() {
    // Code
    try {
        await somePromise();
    } catch (err) {
        console.log(err);
        return; // aborts further execution
    }
    // More Code
}

有关详细信息,请参见async function

,

异步/等待解决了问题,但是了解为什么它可以解决问题很重要。

Promise是一种存储连续性的机制。传递给thencatch的函数存储在promise中,并在解决promise时执行。

要在没有async / await的情况下解决此问题,您只需返回Promise并使用then执行在Promise不拒绝的情况下应执行的任何代码:

function someFunction() {
    // Code
    return somePromise()
      .then(result => {
        // More Code
      })
      .catch(err => {
        console.log(err);
      });
}

这实际上是async / await去糖的目的。异步/等待是状态机周围的语法糖,可以为您连接这些延续。

本文链接:https://www.f2er.com/2782601.html

大家都在问