난 Deferreds과 약속에 대한 읽기 및 걸쳐 계속오고 $.when.apply($, someArray)
. 나는 이것이 정확히 무엇을하는지에 대해 약간 불분명하며 한 줄 이 정확히 작동 한다는 설명을 찾고 있습니다 (전체 코드 스 니펫이 아님). 다음은 몇 가지 컨텍스트입니다.
var data = [1,2,3,4]; // the ids coming back from serviceA
var processItemsDeferred = [];
for(var i = 0; i < data.length; i++){
processItemsDeferred.push(processItem(data[i]));
}
$.when.apply($, processItemsDeferred).then(everythingDone);
function processItem(data) {
var dfd = $.Deferred();
console.log('called processItem');
//in the real world, this would probably make an AJAX call.
setTimeout(function() { dfd.resolve() }, 2000);
return dfd.promise();
}
function everythingDone(){
console.log('processed all items');
}
_.when
사용하지 않아도되도록 단일 어레이를 전달할 수있는 밑줄에 지연된 포트 가 있습니다.apply
.apply
: developer.mozilla.org/en-US/docs/JavaScript/Reference/...를 .
.done()
.then
이 경우 대신 사용할 수 있습니다. FYI