0
Ich möchte einen zusätzlichen Wert zu versprechen .done
übergeben. Das Problem ist, dass console.log(dataToDownload)
immer "b"
druckt.JQuery Versprechen: Zugriff auf externe Variable oder Weitergabe von Ergebnissen an IIFE innerhalb.
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!')
})
Ich habe versucht, IIFE:
.done((function(id){
console.log(id)
console.log(results);
})(dataToDownload);))
Aber ich weiß nicht, wie man IIFE 'Ergebnisse' zu übergeben.
Was wäre die beste Lösung, um auf beide zugreifen zu können: results
und dataToDownload
innerhalb .done
?
können Sie bereits Zugriff auf 'dataToDownload', es in seiner lexikalischen Gültigkeitsbereich ist ... – elclanrs
Ihr Problem kann dieses sein http://stackoverflow.com/questions/750486/javascript-closure-inside-loops -simple-practical-example – elclanrs
@elclanrs: 'console.log (dataToDownload)' im ersten Beispiel gibt 'b' zweimal aus – LAdas