我设法使以下过滤器起作用
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,...同样是废话
有人可以仅通过异步模块帮助我以正确的方式编写吗?
我不知道,但是您可以简单地过滤数组而不使用异步模块。但是正如您所说的那样,您仅必须使用异步模块]
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);
最好使用数组对象的.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);