promise/async,await處理多個互相依賴的異步請求

用了自己項目數(shù)據(jù)字典作為案例,

首先定義好每個請求方法(remote是項目中自己定義的數(shù)據(jù)字典接口請求方法),每個方法return出下一個請求需要的數(shù)據(jù)。

      dictA(){
        return remote('log_type').then(response => {
          const code = response.data.code;
          if (code === 0) {
            console.log('aaaaaaaa','log_type')
            return 'social_type'
          }
        });
      },
      dictB(type){
        return remote(type).then(response => {
          const code = response.data.code;
          if (code === 0) {
            console.log('bbbbbbbbbb',type)
            return 'job_type'
          }
        });
      },
      dictC(type){
        return remote(type).then(response => {
          const code = response.data.code;
          if (code === 0) {
            console.log('cccccccccccc',type)
            return '哈哈哈哈哈哈哈哈哈哈'
          }
        });
      },

promise方式處理

      dictAll(){
        this.dictA().then(res =>{
          return this.dictB(res)
        }).then(res => {
          return this.dictC(res)
        }).then(res => {
          this.test = res
          console.log(this.test)
        })
      },

async/await方式處理

      async dictAll(){
        let A = await this.dictA()
        let B = await this.dictB(A)
        this.test = await this.dictC(B)
        console.log(this.test)
      },

兩種方式控制臺打印如下


image.png

頁面渲染成功

<div>{{test}}</div>
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容