javascript – 服务工作者:async await与waituntil一起工作不正常

前端之家收集整理的这篇文章主要介绍了javascript – 服务工作者:async await与waituntil一起工作不正常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在使用async / await语法时,我正在努力应对服务工作者的承诺.
以下情况:我收到了推送通知,并希望处理点击事件.如果我使用“旧”语法然后捕获我可以在客户端列表上的iteratore并使用它做一些事情.如果我使用我喜欢的方式与async / await它将不会做任何事情.

self.addEventListener("notificationclick",event => {

  // is working
  event.waitUntil(self.clients.matchAll().then(clientList => {
    console.log(clientList);
  }));

  // is not working
  event.waitUntil(async () => {
    const clientList = await self.clients.matchAll();
    console.log(clientList);
  });
});
最佳答案
感谢@Crice和@Keith,

waitUntil需要一个promise作为参数而不是一个函数.所以这是async / await风格的工作示例:

self.addEventListener("notificationclick",event =>
{
    event.waitUntil(getClients());
});

async function getClients()
{
    const clientList = await self.clients.matchAll();
    console.log(clientList);
}

猜你在找的JavaScript相关文章