我一些問題,瞭解如何使用 「Q」(https://github.com/kriskowal/q)一個承諾JavaScript庫:如何用q做一個回調鏈?
var delayOne = function() {
setTimeout(function() {
return 'hi';
}, 100);
};
var delayTwo = function(preValue) {
setTimeout(function() {
return preValue + ' my name';
}, 200);
};
var delayThree = function(preValue) {
setTimeout(function() {
return preValue + ' is bodo';
}, 300);
};
var delayFour = function(preValue) {
setTimeout(function() {
console.log(preValue);
}, 400);
};
Q.fcall(delayOne).then(delayTwo).then(delayThree).then(delayFour).end();
這隻返回undefined ...
感謝您的解決方案。如果我使用Q,我必須做出決定,如果在另一方面會提高我的代碼質量,將會導致嚴重依賴。如果這個問題你有經驗嗎? – bodokaiser
如果你使用很多鏈接的異步調用,那麼你將需要一些庫來逃避'毀滅金字塔':)。我個人更喜歡asyncjs:https://github.com/caolan/async,並且我在一些中型項目上成功使用了它。 – wroniasty