for循环中同步调用接口

Elementui中的级联选择器应用,每级都是动态加载数据,级数不确定,多的有10级

遇到的问题:回显时输入框没有选中内容

首先我猜测就是for循环中使用每个id请求数据后,响应时间不等,导致回显的级联数据有问题,最终证明猜想正确

解决方法

使用Promise+async+await

async initdata(){
    for(let i = 0;i<data.length;i++){
        const real = await this.hanleData()
        
    }
},
hanleData(){
    return new Promise((resolve,reject) => {
        //请求接口
        this.$http.post(参数).then(res => {
            //可以增加一下数据处理
            resolve()
        }).catch(err => {
            reject()
        })
    })
}

以上是代码实例,需要注意的是:for循环中调用方法时使用await,外面必须套一层async的方法,如果initdata()方法中有api请求,那么请把for循环单独提出去,写个方法即可;

当时我就是懒了一下,没有单独写,导致一直不成功,同步没有生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值