我正在使用http请求库got。使用此包,http连接是异步,快速且易于键入的。 " got
" cha是got
是一个有保障的包,这给我带来了一些挑战。一个是我不知道如何传递对got
的引用。
我需要做的是使用got
和文件流来下载几个网址的页面内容。完成所有这些流后,我想继续使用代码。
在这个例子中,我没有制作一个promises数组,而是获得了一个响应对象数组。
const getFile = (fileUrl) => {
return new Promise((resolve) => {
got.stream(fileUrl).pipe(fs.createWriteStream(path.basename(fileUrl)))
.on('finish', () => {
successMessage('downloaded ' + fileUrl + '!');
resolve();
});
});
};
// create an array of these got promises
let promises = []
for (let file of body.files) {
promises.push(getFile(file));
}
getFile
帮助程序存在的原因是将got
包装在一个promise中,以便在执行所有got
之后,我可以使用promise.all
调用:
// after all got's have executed
promises.all(promises).then(() => {
console.log('all promises resolved');
}
寻求帮助,了解如何更改第一个代码段,以使promises.all
按预期行事。
答案 0 :(得分:1)
Promise聚合函数称为Promise.all()
而不是promises.all()
。