小程序递归上传图片对失败的进行三次尝试

/**

 * 业务层 递归调用逻辑

 */

function upLoadFileBase(url, data, file, succ) {

  //当前上传的哪张图片

  wx.uploadFile({

    url: url,

    filePath: file,

    name: 'file',

    formData: data,

    success: (res) => {

      util.log(url + "<---result--->" + JSON.stringify(res.data))

      if (res.data != "") {

        succ(JSON.parse(res.data))

      } else {

        common.showToast('上传失败')

      }

    },

    fail: (res) => {

      requestFail(res)

    },

  });

}

 

 

 

//上传图片 头像

function upLoadImg(requestData, fun) {

  //当前上传第几章

  var i = requestData.i ? requestData.i : 0;

  //记录失败多少张

  var fail = requestData.fail ? requestData.fail : 0;

  //记录成功

  var success = requestData.success ? requestData.success : 0;

  upLoadFileBase(‘这里写Url’, requestData.data, requestData.fileAry[i], (res) => {

    //某张失败的连续失败3次或者在3次中某一次成功了 则继续执行 

    if (requestData.fail == 3 || res.code == 1) {

      i++;

      success++;

      requestData.fail = 0;

      requestData.success = success;

      if (i == requestData.fileAry.length) {

        //若全部都上传失败则提示 用户上传失败

        if (requestData.success == 0 && requestData.fail == 3) {

          res.msg = '上传失败'

        }

        fun(res)

      } else {

        requestData.i = i;

        upLoadImg(requestData, fun)

      }

    } else {

      //尝试3次 对失败的张数

      fail++;

      requestData.fail = fail;

      if (requestData.fail <= 2) {

        upLoadImg(requestData, fun)

      } else {

        //尝试 三次之后会自动进行下一张的上传

        i++;

        requestData.i = i;

        upLoadImg(requestData, fun)

      }

    }

  })

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值