Javascript 难以处理由'引起的错误;导入&x27;
test.js的代码Javascript 难以处理由'引起的错误;导入&x27;,javascript,error-handling,es6-modules,deno,Javascript,Error Handling,Es6 Modules,Deno,test.js的代码 for (let i = 0; i < 10; i++) { console.log(i) try { const j = await import('./errorThrowingModule.js') } catch (error) { console.dir(error) } } test.js的结果(由Deno运行) 我猜测在第二次导入中没有捕获错误的原因如下 导入本身没有什么问题。(查看以下代码以了解您的理解) 等待承诺被模
for (let i = 0; i < 10; i++) {
console.log(i)
try {
const j = await import('./errorThrowingModule.js')
} catch (error) {
console.dir(error)
}
}
test.js的结果(由Deno运行)
我猜测在第二次导入中没有捕获错误的原因如下
import
是如何工作的
也许在第二次运行时,代码根本不会等待导入
我不知道如何有效地处理由模块引起的错误。这在我看来像是Deno中的一个bug。您的第一个代码片段确实应该可以工作,并将同一错误记录十次。它可能与
导入
或顶级等待
有关。谢谢。也许我应该使用新函数
来绕道这个问题。或者确保导入文件没有错误是的,尝试将其放入一个异步函数中
,以查看行为是否发生变化-这将使其成为tla错误。我将稍后再试。非常感谢。可能是导入本身的问题。用async
函数包装不起作用这在我看来像是Deno中的一个bug。您的第一个代码片段确实应该可以工作,并将同一错误记录十次。它可能与导入
或顶级等待
有关。谢谢。也许我应该使用新函数
来绕道这个问题。或者确保导入文件没有错误是的,尝试将其放入一个异步函数中
,以查看行为是否发生变化-这将使其成为tla错误。我将稍后再试。非常感谢。可能是导入本身的问题。使用async
函数包装无效
adsfasdfsdafas()
0
ReferenceError: asdfasdfsdafas is not defined
at file://~~~~~~
1
error: Uncaught ReferenceError: asdfasdfsdafas is not defined
at file://~~~~~
try {
import('./errorThrowingModule.js')
} catch {
// it never reaches here
}
try {
await import('./errorThrowingModule.js')
} catch (error) {
console.dir(error) // it reaches here
}
try {
await Promise.reject(new Error())
} catch (error) {
console.dir(error) // code reaches here
}