我有一组 IP,根据特定条件进行测试,在第一个返回 true 时停止。但是,我无法确定是否所有 IP 都未通过测试,因为 async.detect
仅在成功时返回结果。
我的代码是这样的:
async.detect(ips, function(ip, callback) {
if(aCertainCondition(ip)) {
callback(null, true);
}
}, function(err, result) {
// my result
});
文档没有提及这个用例,答案是 here效率低下,因为 detect
方法似乎永远不会到达 callback
block 。
对于我的用例来说,必须尽快返回第一个成功的测试,否则返回一些东西让我知道所有测试都失败了。是否可以使用async.detect
?或者我应该使用其他方法/库?
谢谢。
最佳答案
您需要始终调用回调,而不仅仅是在条件成功/失败时调用:
async.detect(ips, function(ip, callback) {
callback(null, aCertainCondition(ip));
},
function(err, result) {
// my result
});
关于javascript - Node.js async.Detect 如果没有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41955383/