Vue解决axios接口异步请求数据不同步返回的问题

一、针对methods里的函数使用ajax异步请求后端数据的时候,往往会因为请求还未返回数据,方法后的一些动作已经开始执行了,若涉及到需要运用后端返回的数据的时候,会发现拿到的是为空的数据,这个时候可以通过设置延迟或者回调函数进行操作。
通过回调函数返回数据
methods:{
    test(callback) {
        const _this = this;
        get(diaoyong, {action: 'check'}).then(function (res) {
        callback(res.data)
    })
    },
},
 
mounted(){
    const _this = this;
    _this.test(function (data) {
    _this.list = data;
    })
}    

当遇到那种axios接口请求里同时又包含另一个axios接口请求的情景时,需要等待里面的接口返回数据后再继续执行下面的代码,这个时候可以使用async和await,只需要在下面相应的位置添加上去即可,如果有多个包含的接口,相应加await。

 

 

 

二、设置时间延迟
setTimeout(() => {
延迟的代码
},延迟时间);
 
三、定时器的设置
setInterval(() => { 定时执行的代码 }, 时间(默认毫秒))
 
 
 

posted on 2020-09-13 11:49  一个梦想自由的人  阅读(4831)  评论(0编辑  收藏  举报