Nodejs系列异步

时间:2015-12-13 10:09:44

标签: node.js asynchronous

有人可以告诉我这段代码有什么问题吗?

var identifiers = getIdentifiers();
for(var i = 0; i < identifiers.length; i++){
  async.series({
    country:   function(){return getCountry(identifiers[i])},
    price:  function(){return getPrice(identifiers[i])}
    }, function(err, result) {
    console.log("Country: " + result.country + ", Price: " + result.price);
    });
}

感谢您的反馈。我想要实现的是获得一个由“Country:”+ result [0] +“,Price:”+ result [1]组成的字符串。目前我有“国家:未定,价格:未定义”。

var identifiers = getIdentifiers();
for(var i = 0; i < identifiers.length; i++){
  async.series([
    function(callback){
      getCountry(identifiers[i], function(result) {
        callback(result);
    })},
    function(callback){
      getPrice(identifiers[i], function(result) {
        callback(result);
    })}
    ], function(err, result) {
      console.log("Country: " + result[0] + ", Price: " + result[1]);
    });
}

1 个答案:

答案 0 :(得分:0)

异步系列回调使用2个参数。首先是错误&amp;结果第二。

var identifiers = getIdentifiers();
for(var i = 0; i < identifiers.length; i++){
  async.series([
    function(callback){
      getCountry(identifiers[i], function(result) {
        callback(null, result);
    })},
    function(callback){
      getPrice(identifiers[i], function(result) {
        callback(null, result);
    })}
    ], function(err, result) {
      console.log("Country: " + result[0] + ", Price: " + result[1]);
    });
}

发送&#34; null&#34;为了错误。但是,当然您实际上可以从getPricegetCountry收到错误,然后将其传递给异步。