我正在使用Cordova构建应用。在一个页面上,有一个EventListener调用异步函数。 window.addEventListener("load", loadEdit(), false);
该功能看起来像async function loadEdit(){...}
。
在浏览器中测试时,即使功能完全执行,我也会收到以下错误:
TypeError:Property' handleEvent'不可赎回。
但是,如果我将EventListener更改为另一个函数然后调用异步函数,则似乎没有问题。 例如:
window.addEventListener("load", loadPre(), false);
...
function loadPre()
{
loadEdit();
}
答案 0 :(得分:3)
您可以从eventlistener调用异步函数。
我看到的第一个问题是你在window.addEventListener
的第二个参数中立即调用回调函数,将其包含为loadEdit()
而不是loadEdit
或() => loadEdit()
。你必须给它一个函数作为第二个参数,现在你给出一个Promise或loadPre()的返回值。
尝试这种方式:
window.addEventListener("load", () => loadEdit(), false);
async function loadEdit() {
// do the await things here.
}
异步函数返回promise。因此,如果您想在loadEdit之后执行某些操作,请尝试:
window.addEventListener("load", () => {
loadEdit().then(// callback function here);
}, false);
async function loadEdit() {
// do the await things here.
}