JavaScript fetch()-将ReadableStreams数组映射到数组
我有一批JavaScript fetch()-将ReadableStreams数组映射到数组,javascript,ecmascript-6,async-await,es6-promise,Javascript,Ecmascript 6,Async Await,Es6 Promise,我有一批fetch()调用返回的承诺数组: const fetchResults=[Promise,Promise,Promise] 每个Promise的.body都是,将其转换为字符串似乎是一个令人烦恼的冗长异步操作。我正在尝试使用wait读取主体字符串并将其映射回数组: profileHTMLDocs.map(async (doc) => { doc.text() .then(async (html) => { return await html; })
fetch()
调用返回的承诺数组:
const fetchResults=[Promise,Promise,Promise]
每个Promise
的.body
都是,将其转换为字符串似乎是一个令人烦恼的冗长异步操作。我正在尝试使用wait读取主体字符串并将其映射回数组:
profileHTMLDocs.map(async (doc) => {
doc.text()
.then(async (html) => { return await html; })
})
我尝试了一些变体,但它似乎仍然返回承诺数组,而不是html字符串数组。我错过了什么?是否因为隐式返回是
doc.text()
?您可能希望使用Promise.all将承诺数组转换为解析为字符串数组的承诺:
const result = Promise.all(fetchResults.map(p => p.then(res => res.text())));
那是。。。而不是如何使用
async/await
。您想等待一个被标记为async
的函数。在这段代码中,result
将是一个承诺。您可以使用const result=wait Promise.all(…)代码>如果你只是想要结果的值。我不知道为什么我没有想到这一点。