当我在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;
}
Run Code Online (Sandbox Code Playgroud)
我期待最终输出为123123123,但我得到111222333.有人可以解释为什么会发生这种情况.我对node.js很新,可以使用一些帮助.