gpt4 book ai didi

javascript - 如何为 Notification.requestPermission() 函数选择正确的回调?

转载 作者:行者123 更新时间:2023-12-03 11:24:34 25 4
gpt4 key购买 nike

Notification.requestPermission() 函数已从回调更改为基于 promise 的版本。您可以在 Mozilla documentation 中看到这一点.

为当前浏览器选择正确版本的最佳做法是什么?我试过这样的事情:

 function callback(value) {
// Do something
}

Notification.requestPermission(callback).then(callback);

如果存在 promise ,这将起作用。有时回调会被触发两次。有什么方法可以预先检查,哪个是我需要的回调的正确版本?

最佳答案

我自己找到了解决办法。不知道有没有更好的办法。

    var promise;
var calledBack = false;

if(!Notification || Notification.permission === 'denied')
alert('Notification had been denied');
else if(Notification && Notification.permission !== 'granted') {
function callback(result) {
if(!calledBack) {
calledBack = true;

if(result === 'granted') {
// Do something
}
}
}

promise = Notification.requestPermission(callback);

if(promise && typeof promise.then === 'function')
promise.then(callback);
}


回调检查是否已被调用。如果 requestPermission 返回带有函数“then”的 promise ,则使用 promise 。

关于javascript - 如何为 Notification.requestPermission() 函数选择正确的回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38475135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com