递归的用法

在项目中,遇到从一个接口中要得到部分数据,在将这个数据作为另一个接口里的参数。之前只想到for循环,死都做不出来,因为for循环是同步的。只用用递归方法,因为它是异步的。看来看得懂别人写的递归和自己在项目用递归不是一回事,自己还有很多需要学的,用的。

vue

methods: {
      getData() {
        var that = this;
        var obj = {
          url: GI.api.base + GI.api.comment.list,
          data: {
            uid: this.base.id,
            pagenum:1,
            pagesize:10
          }
        };
        GI.req(obj, function(rst) {
          that.review = rst.data;
           //这里就用闭包,将review中每条数据中增加两个key,分别是orderMsg,orderCover 。如果后台的数据没有,跳过这个条数据,执行函数error
          var i = 0, l = that.review.length;
          var orderGet = function(){

              if(i < l) {

                let obj = {
                  url: GI.api.base + GI.api.order.get,
                  data: {
                    id: that.review[i].orderId 
                  }
                }
                GI.req(obj, function(rst) {
                  that.$set(that.review[i], 'orderMsg', JSON.parse(rst.skuMsg)[0]);
                  that.$set(that.review[i], 'orderCover', rst.spuObj.cover);

                  i++;
                  orderGet();

                }, function(err) {

                  i++;
                  orderGet();

                });
              }
          }
          orderGet();

        }.bind(this));
      },

猜你喜欢

转载自www.cnblogs.com/wcongrantulion/p/9271704.html