I would like to pass extra value to promise .done. The problem is that console.log(dataToDownload) always prints "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!')
})
I've tried IIFE:
 .done( (function(id){
            console.log(id)
            console.log(results);
        })(dataToDownload); ))
But I don't know how to pass 'results' to IIFE.
What would be the best solution to be able to access both: results and dataToDownload inside .done?
 
    