Async.js过滤数组无法正常工作

时间:2017-01-11 23:37:25

标签: javascript node.js async.js

我正在尝试使用async的过滤方法,但我没有得到我期望的结果

async.filter([1, 3, 5], function (item, done) {
        done(item > 1);
    }, function (results) {
        console.log(results);
    });
    async.filter([1, 2, 3, 4, 5, 6], function(item, callback) {
      if (item > 3) {
          callback(true);
      } else {
        callback(false);
      }

    },
    function (result) {
      console.log("result: " + result);
    });

输出

  

     

结果:是真的

而不是2个已过滤的数组,我缺少什么?

1 个答案:

答案 0 :(得分:-1)

我认为你应该使用一些不同的语法,就像它在这里指定的那样:async#filter

回调中的结果应该是第二个参数(不是第一个参数):callback(null, true)

例如:

async.filter([1, 3, 5], function (item, done) {
    done(null, item > 1);
}, function (err, results) {
    console.log(results);
});
async.filter([1, 2, 3, 4, 5, 6], function(item, callback) {
  if (item > 3) {
      callback(null, true);
  } else {
    callback(false);
  }

},
function (err, result) {
  console.log("result: " + result);
});

jsbin#example