Le petit programme résout le problème d'interface de requête dans la boucle for

Les interfaces des applets WeChat sont toutes asynchrones, si vous utilisez une boucle for

    var arr = [];
    for(var i = 0;i<5;i++){
      wx.request({
        url: '',
        header: {
          'content-type': 'application/json', // 默认值
          "Authorization": 'Bearer ' + wx.getStorageSync('token'),
        },
        success(resp) {
          arr.push(resp.data)
        }
      })
    }
    setTimeout(function(){
      console.log(arr);
    },1000)

Il n'est pas facile d'utiliser des minuteries pour contrôler le temps requis pour les demandes d'interface, et cette méthode est trop peu disponible dans les opérations réelles.

Peut être remplacé par récursivité

getammeternumber:function(res,i,length){
    var that = this;
    var ammeterInfo = that.data.ammeterInfo;
    wx.request({
      url: '',
      header: {
        'content-type': 'application/json', // 默认值
        "Authorization": 'Bearer ' + wx.getStorageSync('token'),
      },
      success(resp) {
        ammeterInfo.push(resp.data);
        that.setData({
          ammeterInfo: ammeterInfo
        })
        if (++i< length) {
          that.getammeternumber(res, i, length);
        }else{
          wx.hideLoading();
        }
      }
    })
  },

transfert:

that.getammeternumber (res, 0, res.data.length);

Je suppose que tu aimes

Origine blog.csdn.net/qq_37514029/article/details/88683212
conseillé
Classement