map使用async await
时间: 2023-10-24 17:32:13 浏览: 129
在使用`map`方法中结合`async/await`时,一般的模式是使用`Promise.all`来处理返回的异步操作结果。 这种使用方法可以在一个数组中的每个元素上执行异步操作,并在所有异步操作完成后返回一个包含所有结果的新数组。
例如,在微信小程序中,可以使用以下代码示例来使用`map`结合`async/await`:
```
let videos = video.datas.map(async item => {
item.id = index;
item.videoUrl = await this.getVideoUrl(item.data.vid);
return item;
});
let temp = await Promise.all(videos);
this.setData({ video: temp });
```
在以上代码示例中,`videos`是一个由`map`返回的包含异步操作的函数的数组。每个元素的异步操作都使用`await`关键字来等待结果。最后,使用`Promise.all`将所有异步操作包装为一个Promise对象,等待所有异步操作完成后返回一个包含所有结果的新数组。最后,使用`setData`方法将结果赋值给`video`变量。
总结来说,使用`map`结合`async/await`的一般模式是 `Promise.all(arr.map(async (...) => ...))`。 这种模式可以在循环中依次执行异步操作,并在所有异步操作完成后返回一个包含所有结果的新数组。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [async await 在map中使用](https://blog.csdn.net/qq_46258819/article/details/125563023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [在JS循环中使用async/await的方法](https://download.csdn.net/download/weixin_38520258/13658555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文