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

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块中唯一抛出的东西就像是XHR的问题。如何隔离synchronousTransform的功能,以便可以看到它引起的实际异常?

最佳答案

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

这意味着发送响应后,执行可能会结束,而您又不在try / catch部分。

您省略了它的内部代码,因此不能说它是否返回promise,但是在调用它时应该有await

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

10-11 11:12