我使用节点的子进程模块中的spawn函数启动mpv播放器,然后通过unix套接字与它进行通信。
我的问题是,当产生mpv时它还没有准备就绪。我喜欢回调或承诺看看mpv进程何时准备就绪。
spawn('mpv', arguments, function() {
// mpv ready
});
我想通过“ping”套接字来解决它,并在成功时解决它。但我对承诺还不太熟悉。
有没有人碰巧有这方面的经验?
答案 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);
});