小编use*_*203的帖子

使用node.js在每个循环中使用deferred promise

当我在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很新,可以使用一些帮助.

node.js promise cheerio

2
推荐指数
1
解决办法
2671
查看次数

标签 统计

cheerio ×1

node.js ×1

promise ×1