javascript - node.js 变量 'updated' 不起作用

标签 javascript

在下面的代码中使用 var Updated 来计数更新,但得到零

var updated = 0;
Hosts.find({"model": "cp11"}, {"address":1, _id:0}, function (err, targets) {
    if (err) return console.error(err);
    console.log("Pinged: " + targets.length);
    targets.forEach(function (host) {
        ping.promise.probe(host.address, {
            timeout: 1
            //extra: ["-i 5"]
        }).then(function (res) {
            if (res.alive) {
                Hosts.update({"address": res.host},{"$set": output},{upsert: true}, function(err){
                    if (err) console.log(err);
                });
                ++updated;
            }
        });
    });
    process.exit(updated);
});

除了计数之外一切都很好,请参见下面的结果。

Pinged: 157

Process finished with exit code 0

最佳答案

这应该如何运作? process.exit 在任何异步 Target.forEach 调用之前调用。您需要控制流量,例如使用异步,并且在所有 Targets.forEach 调用完成之前不退出进程。

关于javascript - node.js 变量 'updated' 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30017534/

相关文章:

javascript - HTML id 友好且区分大小写的简单哈希函数

javascript - a.push 不是一个函数; a.shift不是函数; a.splice 不是一个函数

javascript - 是否可以使用 Javascript 从网络文件系统读取文件?

javascript - 如何阻止谷歌验证码执行?

javascript - 在创建的函数中访问 axios 响应数据 - Vue2

javascript - 无法从 JQuery 中的幻灯片获取值

javascript - 在 Javascript 的过滤器回调函数中,在切片另一个数组的同时过滤一个数组

javascript - WebRTC getUserMedia() 流显示静态快照而不是视频

javascript - 根据输入 slider 递归显示/隐藏 li 元素

javascript - Firebase - 按值删除某些内容