【发布时间】:2019-08-16 19:52:49
【问题描述】:
我的 nodejs 中有以下代码。在这里,我将screenshot 定义为const,然后重新定义它,如下所示。这里的问题是我的代码既没有抛出任何错误,也没有在控制台console.log('opopopopopoopoooooopop') 之后进一步执行。一段时间后,我发现原因是“我已将 `screenshot variable as const”。
const handler = async(request, reply) => {
try {
const screenshotPath = ''
console.log(request.payload, 'ddddddddddddddddddd')
let folderName = `./public/applications/${applicationId}`
let filepath = `${folderName}/${className}.png`
mkdirp(folderName, async(err) => {
await imageUpload(file, className, filepath)
console.log('oooooooooooooooooooo')
if (err) {
return reply({ success: false, message: err.message, data: null })
}
console.log('opopopopopoopoooooopop')
screenshotPath = filepath
console.log(Event)
const screen = await Event.findOne({ })
console.log(screen, 'popopopopopoopopooop')
})
} catch (err) {
console.log({ err })
return reply({ success: false, message: err.message, data: null })
}
}
但问题是为什么我的代码没有在这里抛出错误。有人可以帮助我理解这一点。
谢谢!!!
【问题讨论】:
-
您是否尝试在内部异步函数中添加 try-catch 块?
-
@JamesDeSouza no...单次尝试捕获不能做到这一点吗?
-
显然不是!当您运行异步方法时,它就像另一个线程一样工作。不是什么好东西。
-
@JamesDeSouza 那么有没有办法处理单个
catch块?
标签: javascript node.js asynchronous async-await