JQuery 承诺:访问外部变量或将结果传递给 .done 内部的 IIFE



我想传递额外的价值来承诺.done。问题是console.log(dataToDownload)总是打印"b".

var downloadData = {
    'a': 'http://www.aaa.aa?callback=?',
    'b': 'http://www.bbb.bb?callback=?',
}
var promises = [];
for (dataToDownload in downloadData){
    promises.push($.get(downloadData[dataToDownload], {}, null, 'jsonp')
        .done(function(results){
            console.log(dataToDownload)
            console.log(results);
        }))
}
$.when.apply($, promises).done(function(){
    console.log('Downloaded!')
})

我试过IIFE:

 .done( (function(id){
            console.log(id)
            console.log(results);
        })(dataToDownload); ))

但我不知道如何将"结果"传递给 IIFE。

能够同时访问resultsdataToDownload的最佳解决方案是什么:.done内部

console.log(downloadData[dataToDownload])

最新更新