簡體   English   中英

帶參數的兩個異步Javascript函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM