我有一個nodejs程序從服務器下載一堆文件。問題是該過程在文件實際下載之前退出,所以我得到一個損壞的文件。writeStream結束之前的節點進程退出
for(var i = 0; i < items.length; i++){
var file = fs.createWriteStream(items[i].filename);
var request = http.get(items[i].url, function (response) {
console.log('got:', i);
response.pipe(file);
});
request.on('end', function() {
console.log('done with ' + filePath);
});
}
但是,當最後一個請求收到其響應時,進程退出。我從來沒有得到「完成」日誌。
任何人有想法?
謝謝!
這是因爲你的代碼的異步的。基本上,在回調被觸發之前,你已經退出循環。 –
我知道,我嘗試了es6-promise和sync-request但沒有成功... – hugohil
您是否嘗試過我在答案中提供的代碼? –