📜  Node.js 承诺链

📅  最后修改于: 2022-05-13 01:56:23.904000             🧑  作者: Mango

Node.js 承诺链

Promise chaining: Promise chaining 是一种语法,它允许您以特定顺序将多个异步任务链接在一起。这对于在完成不同的异步任务后需要执行一个异步任务的复杂代码非常有用。

为了演示 Promise 链接,将使用以下函数来模拟异步任务。实际上,它只是将几个数字相加,等待两秒钟,然后用总和来履行承诺。

文件名:index.js

const add = (a, b) => {     
    return new Promise((resolve, reject) => {        
        setTimeout(() => {            
            if (a < 0 || b < 0) {                 
                return reject('Numbers must be non-negative')
            } 
            resolve(a + b)         
        }, 2000) 
    })
}
  
add(1, 2).then((sum) => {     
    console.log(sum)  // Print 3   
    return add(sum, 4)
}).then((sum2) => {     
    console.log(sum2) // Print 7 
}).catch((e) => { 
    console.log(e) 
});

运行程序的步骤:

  • 使用以下命令运行 index.js 文件:
    node index.js

定义了伪异步函数后,promise 链可用于调用 add 两次。下面的代码将 1 和 2 相加得到 3。然后它使用总和值 3 作为另一个调用 add 的输入。第二次调用 add 将 3 和 4 相加,总共为 7。

当回调函数返回一个 Promise 时,就会发生 Promise 链接。它允许您链接另一个 then 调用,该调用将在第二个承诺完成时运行。仍然可以调用 Catch 来处理沿途可能发生的任何错误。