如何在 Node.js 中通过错误处理有效地管理多个异步任务?

问题描述 投票:0回答:1

我正在从事一个涉及同时执行多个异步任务(API 调用、数据库查询等)的 Node.js 项目。我想确保我的代码高效且可维护,同时还能正确处理错误。

这是我想要实现的简化版本:

async function performTask1() {
    // Perform an API call or a database query
}

async function performTask2() {
    // Perform another API call or a database query
}

async function performTask3() {
    // Perform yet another API call or a database query
}

async function main() {
    // Execute performTask1, performTask2, and performTask3 concurrently
    // Handle errors for each task individually, without stopping the others
    // Wait for all tasks to complete before moving on
}

main();

我研究过使用 Promise.all(),但它似乎会在任何承诺被拒绝时立即拒绝,这不是我想要的。我希望能够单独处理每个任务的错误,并且仍然等待所有任务完成。

在考虑正确的错误处理和效率的情况下,管理多个此类异步任务的最佳方法是什么?非常感谢任何建议或最佳实践!

如何在 Node.js 中通过错误处理有效地管理多个异步任务?

node.js asynchronous promise es6-promise asynchronous-javascript
1个回答
0
投票

节点相关项目(如 express 应用程序)中的错误处理是通过使用错误中间件完成的。在快递中,我们有“快递错误中间件”https://expressjs.com/en/guide/error-handling.html,您可以使用它来实现您的要求。使用该中间件,您可以将请求处理管道的控制权从一个函数传递到另一个函数,同时查看函数的任何故障。

为避免重复的 try catch 块,您可以使用“express-async-errors”https://www.npmjs.com/package/express-async-errors 模块,如节点模块。 npmjs 中有很多 npm pachages。

要记录错误,您可以再次使用像“winston”这样的 npm 包https://www.npmjs.com/package/winston 错误记录器。

查看这些资源,您将能够解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.