我正在从事一个涉及同时执行多个异步任务(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 中通过错误处理有效地管理多个异步任务?
节点相关项目(如 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 错误记录器。
查看这些资源,您将能够解决问题。