添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
                    let seats = result.combinationSeats;
                    Promise.all(seats.map(com => {
                        return this.xxx(com.aa,com.cc);
                    })).then((fastPacks) => {
                        seats.forEach((com, i) => {
                            com.fastPack = fastPacks[i];
                        this.combinationSeats = seats;
                                    在和后端同学对接的过程中,有一个业务逻辑,数组进行遍历发送请求,后端同学在接口里面返回true或false传的参数是否符合条件。最后将符合条件的数据发送给后端同学。因为请求发送是异步的形式,假如类似下面这种写法let _isExceedFlags = [ ] // selectedDeviceRows:table里面被选中的数据 selectedDeviceRows . map((item) => {const {因为是异步发送的,所以拿不到数据。_isExceedFlags是空的。
数组遍历中每次遍历都需要去请求getStaffCover接口,拿到该接口的结果拼接到数组的每一项,等到数组遍历完之后,拿到拼接好的数组。拼接的数组必须是最终遍历的结果,所以得等到所有的请求结束之后进行操作,使用map可以返回每一次异步请求的Promise合集,注意这里不需要return,然后使用Promise.all等待执行完所有的异步操作,然后才会执行后面的代码
 const promise = nv.aiFaceData.items.map(async item => {
                                    在业务场景中,需要对动态可以添加的表单(该表单是一个数据集合)进行数据回显的逻辑。
所以在编辑状态下,需要根据该表单的数据集合,去获取对应的数据请求,压进表单的下拉列表中进行回显操作。
假设该动态表单中有7个数据,那么就需要发送7次请求。
因为,js单线程同步forEach循环 会比 异步请求更快,也就是第一次请求还没有结束,forEach循环可能已经执行完毕。
所以使用 asnyc await 来执行等待异步执行的操作
 created () {
    let arr = [1, 2, 3
                                    用一个数组中的每个值去循环请求接口,获取对应数据放进新数组。要在循环中使用async、await,可以使用for…of或者for 循环,while循环等,不能使用foreach,因为在forEarch里执行await会并行的。# 有了for循环 为什么还要forEach?## forEach的介绍 #
                                    需求场景:N组IP,遍历去调接口,一组IP调两个不同的接口,前一个接口成功之后,再去调后一个接口,否则,遍历结束。实现:首先想到的是for循环,但因为是一组请求两个异步的IP不太好处理,所以最后采用了递归+promise的方式。在发起请求的方法里面定义一个count变量
let count = 0
然后写一个递归方法
比如recursion(),形参传一个IP组,定义这个方法的时候需要用到发起请求的方法pollRequest(),pollRequest里面使用promise处理同步的请求,然后在递归的方法里