我正在使用chrome.downloads.download
API的鉻擴展。我的擴展是捕獲下載事件並觸發webkitNotification
。我從Google的樣本中發佈了我修改的主要工作功能。爲什麼chrome.downloads.download無法在沒有添加其他功能後工作(它工作時添加alert()後)
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()
的異步函數調用。
由於我是網絡開發新手,我不完全知道我的問題在哪裏。有人能幫我弄清楚這裏發生了什麼嗎?如果可能的話,你能否教我一個像這樣的異步函數調用chrome.downloads.download()
,當匿名回調函數被完全調用?