假设我有一个名为“ Main”的异步函数,该函数在页面加载期间会像这样被调用:
window.addEventListener('load', Main);
由于Main
是一个异步函数,因此我想通过追加.catch((e)=>{ console.error(e);});
从其Promise链中捕获错误。但是,我认为它不能与window.addEventListener
(返回未定义)配合使用,并且只希望将函数的赋值作为第二个参数。
是否可以在不创建包装函数的情况下处理Main的承诺拒绝?
答案 0 :(得分:1)
您有两个选择:
使用包装函数,或
使用Main
/ try
处理catch
中的所有错误
例如:
window.addEventListener("load", evt => {
Main(evt).catch(err => {
//...handle/report error...
});
});
或在Main
中:
async function Main(evt) {
try {
// ...your logic...
} catch (e) {
//...handle/report error...
}
}
在两种情况下,请确保“处理/报告错误”代码本身绝不会引发错误。 :-)