【发布时间】:2018-10-08 07:47:46
【问题描述】:
我在使用异步函数时遇到了问题。我没有意识到 classList.add('') 是非法的。因此,当我在 Firefox 中运行我的代码时,它停止运行我的函数,但没有出现错误,因为它是异步的(Chrome 显示错误)。这很难追踪,因为在原始程序中,带有 classList.add 的函数是两个函数调用。这里发生了什么以及将来如何避免它(除了必须检查两个不同浏览器中的错误日志)? PS 奖金,如果你能解释为什么异步错误实际上并没有停止执行的原因。
async function error1(){
console.log('Fn async error: before')
let a=undefined
a.b=1
console.log('after')
}
async function error2(){
console.log('Fn async noError: before')
document.body.classList.add('')
console.log('after')
}
function error3(){
console.log('Fn: before')
document.body.classList.add('')
console.log('after')
}
//Stops execution of function but not program
//Throws an error in Chrome and Firefox
error1()
//Stops execution of function but not program
//Throws an error in Chrome but not Firefox
error2()
//Errors and stops program
error3()
【问题讨论】:
-
为什么异步错误实际上并没有停止执行你没有等待它