无法读取未定义的属性“ showNotification”

时间:2019-10-23 18:34:07

标签: reactjs service-worker progressive-web-apps

我正在将create-react-app与PWA结合使用,但无法使用通知api:(

此错误:

Cannot read property 'showNotification' of undefined

我的代码

Notification.requestPermission(function(status) {
    console.log("Notification permission status:", status);
  });

  async function displayNotification() {
    if (Notification.permission === "granted") {
       await navigator.serviceWorker.getRegistration().then(reg => {
         reg.showNotification("Go go")
       });
    }
  }

我不明白该错误

1 个答案:

答案 0 :(得分:2)

您不能同时等待并使用。您只能按承诺使用。如果您等待,您将兑现您的诺言。

您可以执行以下任一操作:

async function displayNotification() {
  if (Notification.permission === "granted") {
     const reg = await navigator.serviceWorker.getRegistration()
     reg.showNotification("Go go")
  }
}

或:

function displayNotification() {
  if (Notification.permission === "granted") {
     navigator.serviceWorker.getRegistration().then(reg =>{
       reg.showNotification("Go go")
     }
  }
}