在承諾庫Q,你可以做以下順序鏈的承諾:
var items = ['one', 'two', 'three'];
var chain = Q();
items.forEach(function (el) {
chain = chain.then(foo(el));
});
return chain;
但是,以下不$ Q工作:
var items = ['one', 'two', 'three'];
var chain = $q();
items.forEach(function (el) {
chain = chain.then(foo(el));
});
return chain;
這是行不通的。它同時執行它們全部。我知道這一點,因爲我執行一系列需要大約500個MS的請求。看着我的網絡流量,他們都同時出去(但是按順序)。 – FlavorScape 2015-03-19 23:45:03
@FlavorScape,確保foo是一個工廠 - 查看我的編輯。 – redgeoff 2015-03-20 00:21:00
啊,確定它是一個工廠,這樣它就不會立即在調用堆棧中執行,當我們構建鏈時,對吧? – FlavorScape 2015-03-20 00:50:44