javascript - try/catch 中的异步/等待在等待解决后未显示处理逻辑中的错误

标签 javascript node.js design-patterns promise async-await

当对 async/await 请求使用 try/catch 时,需要对结果执行一些逻辑,哪里是执行此操作的最佳位置逻辑?我有这样的功能

function synchronousTransform (data) {
  return data.reduce( n => n * 2)
}
async function requestFn () {
  try {
    const myPromisedValue = await axios.get(url)
    const result = synchronousTransform(myPromisedValue.data)
    res.status(200).send(result)
  } catch (xhrError) {
    res.status(500).send(xhrError)
  } finally {
    console.log('done')
  }
}

似乎 synchronousTransform 中的某些内容无法正常工作,我收到了错误。但是,我在 try/catch block 中看到的唯一问题就像是 XHR 的问题。如何隔离 synchronousTransform 的功能,以便我可以看到它导致的实际异常?

最佳答案

您在第一行有 await 关键字,但在调用 synchronousTransform 时没有。

这意味着它的执行可能会在发送响应后结束,并且您已经离开了 try/catch 部分。

你遗漏了它的内部代码,所以不能说它是否返回一个 promise ,但它在调用它时应该有 await

关于javascript - try/catch 中的异步/等待在等待解决后未显示处理逻辑中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46635786/

相关文章:

node.js - 更改 CreatedAt/UpdateAt 属性的字段名称

c++ - 具有默认属性的访问者模式

c# - C#中的类实例通信

javascript - 对象.原型(prototype)模式

javascript - 从 Javascript 中的调用函数返回

javascript - 地铁 ui css tile 元素选择不起作用

javascript - 未捕获的类型错误 : Object [object global] has no method

javascript - 如何使用 Vue 构建 UI 框架

javascript - 将 seriate Node.js 与 Web 应用程序连接的最佳方法是什么

javascript - 如何在map函数内对数组进行累加和?