我正在学习es2017中引入的异步函数功能,但似乎无法实现以下功能:
async function sayHelloAsync() {
let {autosave} = await browser.storage.local.get('autosave');
if (autosave) {
$('#helloButton').click();
}
}
$(sayHelloAsync);
我已经在我的小应用程序中为我的需要管理了一个变通方法,但我想知道为什么这不起作用。只要我取下这个 async
,它按预期工作。我还有其他自定义事件绑定,它们使用 async
作为回调函数,它们工作得很好。
我在linux上使用google chrome 57。
更新
我更新了我的代码示例,以消除关于我需要加载dom和jquery的混淆。
3条答案
按热度按时间wd2eg0qa1#
我查过了
jQuery
源代码,下面是它执行的检查,以找出参数是什么:及
jQuery.type( obj )
返回object
不function
正如所料。这可能是一个错误jQuery
,但这就是函数未执行的原因。再挖一点
jQuery
电话toString.call( obj )
ti确定一个类型并尝试将结果Map到已知类型。它不能,这就是它返回的原因object
.所以这里的问题在于
jQuery
不使用异步函数。ego6inou2#
您可以使用原生js
wf82jlnq3#
似乎op找到了他们问题的答案,而不是问题标题的答案。我想等待document.ready函数在我正在编写的 puppet 脚本中使用jquery。
我是这样做的;它回答了题为:
您可以将document.ready函数 Package 在一个承诺中,该承诺在页面准备就绪时解析。
然后,如果要等待文档加载,请执行以下操作: