异步执行的问题

我先调用了dialogCall()因为接口是异步执行所以先打印dialogCall里的console为空,怎么让它按顺序执行呢,先接口在console

   dialogCall() {
        this.getUserList();
        console.log(this.tableData)//这里为空
    },
    
    
    //接口
    getUserList() {
        axiosRequestHandler(userModuleUrl.userPage, {
            size: 10,
            page: 1
        }).then(res => {
            this.tableData = res.records;
        });
    },
阅读 2k
2 个回答
    //接口
    getUserList() {
        axiosRequestHandler(userModuleUrl.userPage, {
            size: 10,
            page: 1
        }).then(res => {
            this.tableData = res.records;
            console.log(this.tableData)//这里为空
        });
    },

或者:

   dialogCall() {
        this.getUserList().then(res => {
            this.tableData = res.records;
            console.log(this.tableData)//这里为空
        })
    },
    
    
    //接口
    getUserList() {
        return axiosRequestHandler(userModuleUrl.userPage, {
            size: 10,
            page: 1
        })
    },

或者:

async dialogCall() {
        const res = await this.getUserList();
        this.tableData = res.records;
        console.log(this.tableData)//这里为空
    },
    
    
    //接口
    getUserList() {
        return axiosRequestHandler(userModuleUrl.userPage, {
            size: 10,
            page: 1
        })
    },

搜索一下 Promiseasync await 用法吧

使用async/await

  async dialogCall () {
        let res = await this.getUserList();
        this.tableData = res.records;
        console.log(this.tableData)//这里为空
    },
    
    
    //接口
    getUserList() {
       return axiosRequestHandler(userModuleUrl.userPage, {
            size: 10,
            page: 1
        })
    },
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题