Javascript 结合Chrome异步API

Javascript 结合Chrome异步API,javascript,google-chrome,asynchronous,Javascript,Google Chrome,Asynchronous,我需要在循环中组合两个Chrome API,循环完成后,将阵列保存到存储。 这就是我所拥有的 chrome.downloads.search({}, function (DownloadItem) { for (var i=0; i<DownloadItem.length; i++) { var itemID = DownloadItem[i].id; chrome.downloads.getFileIcon(itemID, function(ico

我需要在循环中组合两个Chrome API,循环完成后,将阵列保存到存储。
这就是我所拥有的

chrome.downloads.search({}, function (DownloadItem) {
    for (var i=0; i<DownloadItem.length; i++) {
        var itemID = DownloadItem[i].id;
        chrome.downloads.getFileIcon(itemID, function(iconURL) {
            DL_icons[itemID] = iconURL;
        });     
    }
    console.log(DL_icons);
});  
chrome.downloads.search({},函数(DownloadItem){

对于(var i=0;i如果有人偶然发现simmmilar问题,我就是这样解决的,thanx给@elclars的建议

它是从

chrome.downloads.search({},函数(DownloadItem){

对于(var i=0;i看起来像是,和的混合体,我应该将其拆分为外部函数吗?这会有帮助吗?顺便说一句。我不能使用iLife,因为在这种情况下,我无法获得ID…或者我可以吗?@elclanrs i stand correct:)IIEF是解决方案,谢谢
chrome.downloads.search({}, function (DownloadItem) {
    for (var i=0; i<DownloadItem.length; i++) {
        var itemID = DownloadItem[i].id;
        (function(index) {
            chrome.downloads.getFileIcon(index, function(iconURL) {
                DL_icons[index] = iconURL;
                console.log(DL_icons);
            });
        })(itemID);         
    }
});