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

时间:2016-03-22 15:42:17

标签: javascript jquery

我想将额外的价值传递给承诺.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的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:0)

console.log(downloadData[dataToDownload])