我正在开发一个使用chrome.downloads.download
API 的 chrome 扩展。我的扩展是捕获下载事件并触发webkitNotification
。我从谷歌的一个示例中发布了我修改的主要工作功能。
function downloadCheckedLinks() {
for (var i = 0; i < visibleLinks.length; ++i) {
if (document.getElementById('check' + i).checked) {
chrome.downloads.download({url: visibleLinks[i]}, function(id) {
var notification = window.webkitNotifications.createNotification('',
'OMG', 'hello within for loop, succeed!');
notification.show();
});
alert("function executed!");
}
}
window.close();
}
问题是当我删除 时alert("function executed")
,它只在调试模式下工作,我在 for 循环中设置了一个断点并单步执行代码。在正常模式下,我必须添加一些东西才能使其工作(即alert()
)。我觉得是因为chrome.downloads.download()
.
由于我对 Web 开发这个词不熟悉,所以我不完全知道我的问题出在哪里。谁能帮我弄清楚这里发生了什么?如果可能的话,你能教我在这样的异步函数调用中chrome.downloads.download()
,当匿名回调函数被准确调用吗?