【发布时间】:2023-03-11 11:40:01
【问题描述】:
嘿,我需要一些帮助,我想要的是等待来自 url 的所有文件完成下载(写入),然后当它完成时它将运行另一个函数。在我编写的这个代码块中,将在等待所有文件完成写入之前先运行解析,这不是我想要的。
pages 参数是一个 url 数组。
所以,如果我使用“完成”回调,回调将针对每个完成的 url 运行,我想做的是等待所有 url,然后运行 resolve();
function urlDownload(TITLE, PAGES) {
const download = new Promise((resolve, reject) => {
PAGES.map((value, index) => {
request
.get(value)
.pipe(fs.createWriteStream(`folder/${TITLE}/${index}.jpg`))
.on("finish", () => console.log(`Finished downloading ${index}.jpg`));
});
resolve("Done");
});
download.then((resolve) => {
console.log(resolve);
});
}
【问题讨论】:
-
@KrzysztofKrzeszewski 将为每个 url 运行完成回调,我想要的是,等待所有 url 完成写入,感谢您的快速帮助
-
我发布了一个可以等待所有人的答案
标签: javascript node.js request fs