1
function downloadAsync(url, name) {
return new Promise(function(resolve, reject) {
request(url, function(err, response, body) {
if (err) {
reject(err);
} else {
fs.writeFileSync(path.resolve(process.cwd(), 'downloaded_html', name), body);
console.log('got ' + url);
resolve();
}
})
})
}
var urls = ['url1', 'url2', 'url3']
var promises = urls.map(function(url, i) {
var name = i + '.html'
downloadAsync(url, name)
})
Promise.all(promises).then(function() {
console.log('download over')
})
なぜ私のコードは「ダウンロード」を最初に印刷し、次にhtmlページをダウンロードし始めますか? このコードは最初にhtmlページをダウンロードしてから、「ダウンロード」を印刷することになっていました。あなたの約束配列には約束がないので、あなたは、あなたのマップになぜ、私のコードが最初にダウンロードしてから、htmlページをダウンロードし始めますか?
return downloadAsync(url, name);
を返す必要が
これは、ありがとうございます! – postget