2015-09-17 256 views
-1

在执行下一步之前,您如何等待异步调用进行组合?javascript:等待异步完成

function fx1() { 
 
     setTimeout(function() { 
 
      alert("1"); 
 
     }, 2000); 
 

 
     fx1().done(function() { 
 
      fx2(); 
 
     } 
 
    } 
 

 
    function fx2() { 
 
     alert("2"); 
 
    }

+0

只需使用一个数组作为队列,用要执行的函数填充数组,然后让处理函数运行show。 – SquareCat

回答

0

您可以手动提供一个回调函数:

function f1(callback) { 
    setTimeout(function() { 
    alert("1"); 
    callback(); 
    }, 2000); 

f1(function() { 
    alert("2"); 
}); 

或使用的承诺:

var promise = new Promise(function(resolve, reject) { 
    setTimeout(function() { 
    alert("1"); 
    resolve(); 
    }, 2000); 
}; 

promise.then(function() { 
    alert("2"); 
}); 

使用的承诺可能是最好的的想法,但与他们合作可能有点乏味。使用第三方库(如bluebirdQ)可以使他们更容易地工作。