首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ES2017异步与jQuery .ready()

使用ES2017异步与jQuery .ready()
EN

Stack Overflow用户
提问于 2017-04-18 13:17:07
回答 3查看 2.9K关注 0票数 3

我正在学习异步函数在ES2017中引入的特性,我似乎无法做到以下几点:

代码语言:javascript
运行
复制
async function sayHelloAsync() {
  let {autosave} = await browser.storage.local.get('autosave');
  if (autosave) {
    $('#helloButton').click();
  }
}

$(sayHelloAsync);

我已经在我的小应用程序中为我的需求找到了一个解决方案,但我想知道为什么这个方法不能工作。一旦我删除了async,它就会像预期的那样工作。我还有其他自定义的事件绑定,它们使用async函数作为回调,它们工作得很好。

我在Linux上使用谷歌Chrome 57。

更新

我更新了代码示例,以消除对加载DOM和jQuery的需求的混淆。

EN

Stack Overflow用户

发布于 2021-04-10 23:30:20

似乎OP对他们的问题找到了一个答案,但实际上并不是问题标题的答案。我想在我编写的使用document.ready的Puppeteer脚本中等待jQuery函数。

这就是我是如何做到的,它回答了题为:

您可以将document.ready函数包装在页面准备就绪时解析的承诺中。

代码语言:javascript
运行
复制
  //Wrap document ready function in a promise to be able to await it
  async domReady() {
    let promise = new Promise((resolve, reject) => {
      $(document).ready(() => {
        resolve("ready");
      });

      //Any reason for rejection could go here and have a call to reject(error);
    });

    return promise;
  }

然后,如果要等待加载文档:

代码语言:javascript
运行
复制
await domReady();
// The rest of your dependant code goes here...
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43473353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档