在这里的第一篇文章。对于个人项目,我已经遇到了很多问题。我曾经在这里找到一个类似的主题,但现在找不到了,并且没有回答这个问题。
我必须承认我的头衔有点怪异,但我找不到更好的解释方式。无论如何,我们走吧。

我有这个功能:
(正确提供了网址和时间,这不是问题)

function setTimer(url, time) {
    var timeHR = time / 1000 / 60;
    idTimerString = saveTimer(url, timeHR);
    console.log(idTimerString);
    setTimeout(function() {
        var options = {
            type: "basic",
            title: "Remind me later !",
            message: ('You asked me to remind you :\n' + url + ' \n' + timeHR + ' minutes ago. Click to open it !'),
            iconUrl: 'img/icon.png'
        }
        chrome.notifications.create(idTimerString, options, function(cb) {
            console.log(cb);
        });
    }, time);

}


一次调用该函数没有问题时,延迟后将正确显示该函数。如果我在单击第一个通知时创建一个呼叫次数为3000万(id = 1)的呼叫,而在另一个呼叫之后则为60000000(id = 2),则当我单击第一个通知时,我将收到ID 2,与第二个通知相同。
但是我本来应该有id 1,然后id 2!你知道为什么吗?

我的扩展程序已经在线上,您想测试该错误,但我认为它将被视为广告。

最佳答案

这很可能是关闭范围的问题。尝试使idTimerString局部于该函数

var idTimerString = saveTimer(url, timeHR);

09-25 20:57