【问题标题】:NodeJs exec() function stops forking after a whileNodeJs exec() 函数在一段时间后停止分叉
【发布时间】:2016-08-11 11:11:20
【问题描述】:

我正在尝试使用 Bluez 在 nodeJs 上构建 BLE 扫描模块 这是我一直在使用的代码:

exec('sudo hcitool lescan --duplicates &', function (error, stdout, stderr) { });

exec('sudo hcitool lescan --duplicates &', function (error, stdout, stderr) {
    var result = exec('sudo hcidump --raw &');

    /*
     * Whenever hcidump returns a  raw data, this function calls itself. And pushes 
     * the raw data to createBeaconDevice function.
     */
    result.stdout.on('data', function (data) {
        var currentDate = new Date();
        writeLog('scanData', data, currentDate.toISOString().replace(/T/, ' ').replace(/\..+/, ''))
        createBeaconDevice(data);
    });
});

但问题是它会在一段时间后停止工作,而不会发出任何警告或错误。可能是什么问题呢?如果有人可以提供帮助会很高兴

【问题讨论】:

    标签: javascript node.js bluez


    【解决方案1】:

    它是如何停止工作的?

    你可以像这样处理错误参数

    function (error, stdout, stderr) {
        if (error) throw new Error(error) // to get info
        ...
    }
    

    获取一些信息。

    【讨论】:

    • 其余代码继续工作,但扫描过程停止。
    • @ozata 你能添加错误参数处理吗,为了安全起见,如果它可以揭示任何东西,我们可以更好地帮助你
    • 这种用法的问题是您输入的内容是我在扫描时无法以这种方式获取异步数据
    • @ozata 是的,控制台日志记录怎么样,然后可能也会在内部 exec() 调用中添加类似的错误处理
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多