Да, вы можете. С child_process.spawn
. В то время как child_process.exec
выполняет команду и буферизирует вывод, spawn
дает вам события на data
, error
и end
. Поэтому вы можете слушать это и рассчитать свой прогресс. В базовом примере есть node docs for spawn.
Обновление: Я видел ваш другой вопрос. Для этого вы можете использовать wget
, но я рекомендую вместо этого узел nodejs request. Вот как извлечь файл с запросом:
var request = require("request");
request(url, function(err, res, body) {
// Do funky stuff with body
});
Если вы хотите, чтобы отслеживать прогресс, вы передаете обратный вызов onResponse
:
function trackProgress(err, res) {
if(err)
return console.error(err);
var contentLength = parseInt(res.headers["content-length"], 10),
received = 0, progress = 0;
res.on("data", function(data) {
received += data.length;
progress = received/contentLength;
// Do funky stuff with progress
});
}
request({url: url, onResponse: trackProgress}, function(err, res, body) {
// Do funky stuff with body
});
вы говорите, "порождение дает событие на данные, ошибку и в конце ». Итак, можно ли запустить выполнение скрипта python с помощью spawn? Если да, можете ли вы ответить на этот вопрос, пожалуйста? http://stackoverflow.com/questions/33802895/show-progressbar-of-python-script-execution-with-nodejs – AshBringer