[英]Two Async Javascript Functions with Parameters
我的問題完全取決於先前的問題 :
關於方法3(“計數器”之一):如果handleCompletion
需要startOtherAsync
中的值以完成其工作。 我們如何實現呢?
請注意,來自startOtherAsync
值(可能是一個參數)將使startAsync
感到悲傷,並且無法再調用handleCompletion
。
這實際上是使用諾言的理想場所。 默認情況下,所有jQuery Ajax調用都會返回promise,這意味着您可以將它們簡單地鏈接在一起:
$.ajax({/*snip*/}).then(
function(result){
doSomethingWithResult(result);
return $.ajax({/*snip*/});
}).then(function(result){
doSomeFinalProcessing(result);
});
當然,還有一個jsFiddle來演示這種情況 。
這是一個更新的小提琴,它顯示了如何組合多個同時的Promise和組合其結果。
http://jsfiddle.net/jwcarroll/U3N9u/
和代碼:
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
function doStuffLater(msg){
var def = $.Deferred();
setTimeout(function(){
def.resolve(msg);
}, getRandomInt(300, 1000));
return def.promise();
}
function needsBothReturns(one, two){
console.log({one:one, two:two});
}
var first = doStuffLater("Sent First");
var second = doStuffLater("Sent Second");
$.when(first, second).done(function(result1, result2){
needsBothReturns(result1, result2);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.