【发布时间】:2015-03-16 12:55:32
【问题描述】:
当我在 node.js 的循环中使用 Promise 时遇到了问题。 下面是一个简单的例子,我正在使用cheerio 来抓取网页并执行以下操作:
$('.xyz').each(function(){
fn1()
.then(fn2)
.then(fn3)
});
function fn1() {
var deferred = Q.defer();
console.log("1");
deferred.resolve();
return deferred.promise;
}
function fn2() {
var deferred = Q.defer();
console.log("2");
deferred.resolve();
return deferred.promise;
}
function fn3() {
var deferred = Q.defer();
console.log("3");
deferred.resolve();
return deferred.promise;
}
我期待最终输出为 123123123,但我得到的是 111222333。有人可以解释为什么会这样。我对 node.js 很陌生,可以使用一些帮助。
【问题讨论】:
-
这是一个关于如何使用 thenable 链接的示例:stackoverflow.com/q/27468188/1348195 如果您愿意,我可以添加答案。