如果没有结果,Node.js async.detect

时间:2017-01-31 10:36:05

标签: javascript node.js asynchronous

我有一个IP数组,我针对某个条件进行测试,在第一个返回true的IP上停止。但是,我无法确定所有IP是否都未通过测试,因为async.detect仅在成功时返回结果。

我的代码是这样的:

async.detect(ips, function(ip, callback) {
    if(aCertainCondition(ip)) {
      callback(null, true);
    }
}, function(err, result) {
    // my result
});

文档没有提及此用例,找到的答案here效率低下,因为detect方法似乎永远不会到达callback块。

我的用例必须尽可能快地返回成功的第一个测试,否则返回一些东西让我知道所有测试都失败了。是否可以使用async.detect?或者我应该使用其他方法/库吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要始终调用回调,而不仅仅是在条件成功/失败时:

    async.detect(ips, function(ip, callback) {

       callback(null, aCertainCondition(ip));
    }, 
    function(err, result) {
        // my result
    });