如何使用子进程承诺
How to use child-process-promise
var promise = require('child-process-promise').spawn;
promise('some_command_producing_output')
.then(function (result) {
...
})
.catch(function (err) {
...
});
我想要的是在命令在标准输出中产生输出后添加一些处理。所以最后我想创建一个像这样使用的函数:
RunCommandAndProcess('some_command_producing_output')
.then(function (result) {
...
})
.catch(function (err) {
...
});
该函数应该使用子进程承诺中的承诺,等待直到产生成功的结果并且return承诺处理数据。
你可以通过
var spawn = require('child-process-promise').spawn;
var promise = spawn('echo', ['hello']);
var childProcess = promise.childProcess;
console.log('[spawn] childProcess.pid: ', childProcess.pid);
childProcess.stdout.on('data', function (data) {
console.log('[spawn] stdout: ', data.toString());
});
childProcess.stderr.on('data', function (data) {
console.log('[spawn] stderr: ', data.toString());
});
promise.then(function () {
console.log('[spawn] done!');
})
.catch(function (err) {
console.error('[spawn] ERROR: ', err);
});
更多信息请查看documentation
欢迎来到 Stack Overflow @ScHoolboy。
我建议您使用 Node.js 中的基本子进程模块,并按以下方式自行承诺
const spawn = require('child_process').spawn;
const spawnPromise = (cmd, args) => {
return new Promise((resolve, reject) => {
try {
const runCommand = spawn(cmd, args);
runCommand.stdout.on('data', data => resolve(data.toString()));
runCommand.on('error', err => {
throw new Error(err.message);
});
} catch (e) {
reject(e);
}
});
};
其中:
- cmd - 命令,例如“echo”
- args:参数数组,例如["Hello world"]
如果需要,您可以将函数调用为 RunCommandAndProcess :)
用法示例:
spawnPromise('ls', ['-la']).then(data => console.log('data: ', data));
或者
const result = await spawnPromise('ls', ['-la']);
var promise = require('child-process-promise').spawn;
promise('some_command_producing_output')
.then(function (result) {
...
})
.catch(function (err) {
...
});
我想要的是在命令在标准输出中产生输出后添加一些处理。所以最后我想创建一个像这样使用的函数:
RunCommandAndProcess('some_command_producing_output')
.then(function (result) {
...
})
.catch(function (err) {
...
});
该函数应该使用子进程承诺中的承诺,等待直到产生成功的结果并且return承诺处理数据。
你可以通过
var spawn = require('child-process-promise').spawn;
var promise = spawn('echo', ['hello']);
var childProcess = promise.childProcess;
console.log('[spawn] childProcess.pid: ', childProcess.pid);
childProcess.stdout.on('data', function (data) {
console.log('[spawn] stdout: ', data.toString());
});
childProcess.stderr.on('data', function (data) {
console.log('[spawn] stderr: ', data.toString());
});
promise.then(function () {
console.log('[spawn] done!');
})
.catch(function (err) {
console.error('[spawn] ERROR: ', err);
});
更多信息请查看documentation
欢迎来到 Stack Overflow @ScHoolboy。
我建议您使用 Node.js 中的基本子进程模块,并按以下方式自行承诺
const spawn = require('child_process').spawn;
const spawnPromise = (cmd, args) => {
return new Promise((resolve, reject) => {
try {
const runCommand = spawn(cmd, args);
runCommand.stdout.on('data', data => resolve(data.toString()));
runCommand.on('error', err => {
throw new Error(err.message);
});
} catch (e) {
reject(e);
}
});
};
其中:
- cmd - 命令,例如“echo”
- args:参数数组,例如["Hello world"]
如果需要,您可以将函数调用为 RunCommandAndProcess :)
用法示例:
spawnPromise('ls', ['-la']).then(data => console.log('data: ', data));
或者
const result = await spawnPromise('ls', ['-la']);