javascript - Node.js async.Detect 如果没有结果

标签 javascript node.js asynchronous

我有一组 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/

相关文章:

JavaScript 将回调转换为 Promise

javascript - PhoneGap 推送插件注册 ID 在移动设备上不起作用

javascript - 模板内部选项绑定(bind)的奇怪行为

JavaScript 不可破解的倒计时器

node.js - ExpressJS - 前端自动编译 CoffeeScript

node.js - Node 中密码存储的密码学最佳实践

一旦内容可用,Java 就会从 Stream 中读取

javascript - 仅允许字母数字和特殊字符的正则表达式不起作用

javascript - 如何将类添加到上面的第一个 div 中?

mysql - 如何从 findOne 函数 MySQL 返回一个 bool 值