javascript - 异步/等待同时避免 Try/Catch block ?

标签 javascript node.js asynchronous es6-promise es6-class

我已经使用 Node 大约一个月了,我想利用可用的最新功能,例如 Async/Await 样式,但我不喜欢将 try/catch block 与它一起使用。我一直在尝试制作某种包装器类和/或函数来包装异步/等待。

我使用 await-to-js npm 模块的解构逻辑来部分缓解 try/catch 的使用,但我对如何在不使用 es6 promises 的情况下在异步函数之外使用它感到有些困惑,以及如何我使用这种方法链接多个等待吗?

如果我做错了什么,任何帮助、建议或批评,我都非常感激。

最佳答案

避免在 async/await 中使用 try/catch block 的一个很好的选择是创建一个用于错误处理的高阶函数:

function catchErrors(fn) {
  return function(...args) {
    return fn(...args).catch((err) => {
      console.error(err);
    })
  }
}

async function asyncFunc(name, value) {
  const a = await ...
  const b = await ...
  /* ... */
}

// Wrap it in an higher-order function
const wrappedAsyncFunc = catchErrors(asyncFunc);

wrappedAsyncFunc("lala", 4);

关于javascript - 异步/等待同时避免 Try/Catch block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48223180/

相关文章:

javascript - 如果我可以声明 JS const,为什么还要使用 AngularJs .constant() ?

node.js - 带游标的 Mongodb native 聚合

Raspberry 上的 node.js]Pi 未显示任何终端输出

asynchronous - 为什么 time.sleep 不在 Tornado 协程中并行运行?

c# - 异步lambda是否应在异步功能中运行?

javascript - 如何扩展 Eslint 以与 create-react-app 一起使用

在 Internet Explorer 中上传前检查文件大小的 Javascript

javascript - javascript 中的颜色相等

node.js - ObjectId并在mongodb中查找

javascript - 了解函数(错误、数据)回调