async.js过滤器功能nodejs

问题描述 投票:-1回答:2

我设法使以下过滤器起作用

var async = require('async');
var fs = require('fs');
async.filter([3, 4, 5, 6, 7], fa, function(err, results) {
  console.log(results);
  //console.log("ultimcc",cc);
});

function fa(as, callback) {
  var cc = {};
  for (i = 1; i < as; i = i + 1) {
    cc[i] = i;
  }
  console.log("inside", as, cc);
  if (as > 4) {
    callback(null, as)
  }
  if (as <= 4) {
    callback(null, null)
  }
}

在此示例中,我尝试过滤大于4的所有内容忽略cc变量。问题是...。它与异步模块上的文档不匹配https://github.com/caolan/async/blob/v1.5.2/README.md我在较高的变体上尝试了一些varinats,...同样是废话

有人可以仅通过异步模块帮助我以正确的方式编写吗?

javascript node.js async.js
2个回答
0
投票

我不知道,但是您可以简单地过滤数组而不使用异步模块。但是正如您所说的那样,您仅必须使用异步模块]

var async = require('async');
var fs = require('fs');
let cc = {};
async.filter([3, 4, 5, 6, 7], (res) => {
    if (res <= 4) {
        cc[res] = res;
    }

});
console.log(cc);

0
投票

最好使用数组对象的.filter(),但如果您更喜欢使用异步,这是代码示例:

const async = require('async');
const fs = require('fs');

async.filter([3, 4, 5, 6, 7],
  (as, callback) => {
    if (as > 4) callback(null, as);
    else callback();
  }, (err, results) => {
    if (err) console.error(err);
    else console.log(results);
  });

替代的异步模块是这个:

let result = [3, 4, 5, 6, 7].filter(as => as > 4);
// equal to write -> let result = [3, 4, 5, 6, 7].filter(function (as) { return as > 4; });
console.warn(result);
© www.soinside.com 2019 - 2024. All rights reserved.