0
我想要在nodejs上使用curl來獲取數據。我需要爲每個查詢運行多個child_process,以便無延遲地檢索數據。節點j上的多個child_process exec
router.post('/curl/', function*() {
var urls = this.request.body.url;
var exec = require('child_process').exec;
var promise = new Promise((resolve, reject) => {
var count = urls.length;
var res = _.map(urls, (stream) => {
// stream = {url:'http://url1.com'};
var command = 'curl '+stream.url+';
exec(command, (error, stdout, stderr) => {
if (error !== null) {
console.log('exec error: ' + error);
}
return stdout;
});
});
resolve(res);
});
this.body = yield promise;
});
此決心'[null,null]'; 我曾嘗試使用Promise.map,但它也失敗了。
如果我發出一個請求(沒有_.map()) - 它會返回請求頁面的HTML,如我所料。 如何爲我的請求運行多個child_process?
我使用生成器將所有代碼包裝到Promise中,並將其作爲'this.body = yield promise'運行。 – Mike
好的。我的答案是否適合你? – Sangharsh