Я використовую бібліотеку обіцянок Bluebird під Node.js, це здорово! Але у мене питання:
Якщо ви подивитесь на документацію Node's child_process.exec та child_process.execFile, ви побачите, що обидві ці функції повертають об'єкт ChildProcess.
Отже, який рекомендований спосіб оптимізації таких функцій?
Зверніть увагу, що працює наступне (я отримую об’єкт Promise):
var Promise = require('bluebird');
var execAsync = Promise.promisify(require('child_process').exec);
var execFileAsync = Promise.promisify(require('child_process').execFile);
Але як можна отримати доступ до вихідного значення повернення оригінальних функцій Node.js? (У цих випадках мені потрібно було б мати доступ до спочатку повернутих об’єктів ChildProcess.)
Будь-яка пропозиція буде вдячна!
РЕДАГУВАТИ:
Ось приклад коду, який використовує повернене значення функції child_process.exec:
var exec = require('child_process').exec;
var child = exec('node ./commands/server.js');
child.stdout.on('data', function(data) {
console.log('stdout: ' + data);
});
child.stderr.on('data', function(data) {
console.log('stderr: ' + data);
});
child.on('close', function(code) {
console.log('closing code: ' + code);
});
Але якби я використав би перспективну версію функції exec (execAsync зверху), тоді повернене значення буде обіцянкою, а не об’єктом ChildProcess. Це справжня проблема, про яку я кажу.
ChildProcess
екземпляр? Приклад коду того, як ви хочете використовувати потрібну функцію, був би корисним.