NodeJs:检测程序启动时child_process.spawn准备好了吗?

时间:2016-12-16 14:30:03

标签: javascript node.js sockets child-process

我使用节点的子进程模块中的spawn函数启动mpv播放器,然后通过unix套接字与它进行通信。

我的问题是,当产生mpv时它还没有准备就绪。我喜欢回调或承诺看看mpv进程何时准备就绪。

spawn('mpv', arguments, function() {
    // mpv ready
});

我想通过“ping”套接字来解决它,并在成功时解决它。但我对承诺还不太熟悉。

有没有人碰巧有这方面的经验?

1 个答案:

答案 0 :(得分:0)

我不知道,为什么你想以承诺的方式做这件事,你可以在数据处理程序中重用一些数据时做一些代码。

我想,你可以用这种方式尝试承诺

var spawn = require('child_process').spawn;

function spawnAsyncFunction() {
    var proc = spawn('ls', ['-l']);
    return new Promise(function (resolve, reject) {
        proc.stdout.on('data', function (data) {
            resolve(data);
        });
        proc.on('close', function (code) {
            reject(code);
        });

    })

}
spawnAsyncFunction()
    .then(function(data){
        // Some usful code here
        console.log(data.toString());
    })
    .catch(function (error) {
        console.log(error);
    });