JavaScript fetch() - 将 ReadableStreams 数组映射到数组

标签 javascript ecmascript-6 async-await es6-promise

我有一组从一批 fetch() 调用返回的 Promises:

const fetchResults = [ promise , promise , promise ]

每个Promise.bodyReadableStream ,将其转换为字符串似乎是一个烦人的冗长异步操作。我尝试使用await 读取正文字符串并将其映射回数组:

profileHTMLDocs.map(async (doc) => { 
    doc.text()
        .then(async (html) => { return await html; }) 
})

我尝试了一些变体,但它似乎仍然返回一个 promise 数组而不是 html 字符串数组。我缺少什么?是因为隐式返回的是doc.text()吗?

最佳答案

您可能想使用 Promise.all 将 Promise 数组转换为解析为字符串数组的 Promise:

const result = Promise.all(fetchResults.map(p => p.then(res => res.text())));

关于JavaScript fetch() - 将 ReadableStreams 数组映射到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50660377/

相关文章:

javascript - HTML 表格在 div 之外结束

c# - TPL 数据流 block

c# - 如何从异步方法向调用者抛出异常?

javascript - 静态类属性不适用于 Babel

javascript - 在 React Redux 中改变状态的正确位置

c# - 异步创建目录(不使用 FileSystemWatcher)?

javascript - Safari MediaSource 永远不会在后台选项卡中打开

javascript - 将默认函数分配给 Ext.Ajax.request 失败

javascript - Chrome 扩展和 Django : Verify whether third party cookies are allowed

javascript - 使用 ReactJS 在 ES6 类中嵌套 "this"绑定(bind)