当对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/