vue项目axios请求使用async解决异步问题

发布于 2022-09-11 19:01:25 字数 704 浏览 16 评论 0

有两个方法:一个是

  handleGetTable(id){
        let pa = {
          id: id
        };
        api.getTable(pa).then(res => {
          if(res.data.code === 200){
            return new Promise((resolve,reject) => { resolve(res.data.data)})
          }})
      },

其中api.getTable是axios的集中管理的一个请求;现在想在另一个方法中等待此方法返回结果之后再发送请求

async getSqlSentence(id){
        // 工单ID
        let pa = {
          id: id
        };
        let s = await this.handleGetTable(id);
        console.log(s, 'ssssssssssss')
        kursk.getSqlSentence(pa).then(res => {
          if(res.data.code === 200){}
        })
      },

但是上面的写法好像行不通? 请求应该怎么使用async方法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

情归归情 2022-09-18 19:01:25

api.getTable(pa)的返回就是一个promise 所以你可以直接调用

async getSqlSentence() {
    const res1 = await api.getTable(pa)
    const res2 = kursk.getSqlSentence(pa).then(res => {
        if(res.data.code === 200){}
    })
}

code是不是200的判断你可以在interceptor里做

稀香 2022-09-18 19:01:25

你的handleGetTable什么都没返回,自然都看不到结果了。

多彩岁月 2022-09-18 19:01:25
async handleGetTable(id){
        let pa = {
          id: id
        };
       return await api.getTable(pa)
      },
鹤舞 2022-09-18 19:01:25
handleGetTable(id){
        let pa = {
          id: id
        };
        return api.getTable(pa).then(res => {
          if(res.data.code === 200){
            return new Promise((resolve,reject) => { resolve(res.data.data)})
          }})
      },
回忆那么伤 2022-09-18 19:01:25
handleGetTable(id){
        let pa = {
          id: id
        };
        new Promise((resolve,reject) => {
            api.getTable(pa).then(res => {
              if(res.data.code === 200){
                return resolve(res.data.data)
              }})
        })
      },

这样就好了~~~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文