我有一个代码块,我将处理
function processBlocks(){
var data = [1,2,3,4]; // some array
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');
setTimeout(function() { dfd.resolve() }, 2000);
return dfd.promise();
}
function everythingDone(){
console.log('processed all items');
}
function mainOne() {
processBlock();
}
mainOne()函数可以立即调用任意次。但是一旦调用了一个processBlock()函数,就应该终止旧函数的延迟进程并启动新进程。
有什么办法吗?目前,旧的延期不会被杀,另一个将开始并继续。
由于