मैं 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 करें