不间断更新~项目中常用的小逻辑

项目中常用的小逻辑

前提还是要打好js基础啊,回调,递归,promise,各种循环,各种数组方法

按序请求接口

前提:一共有1000个号码,用户可以按照自定义的规则,进行捞取号码(也就是1000个号码迁移到用户的数据库里),并依序告知每一条规则的匹配结果;
页面:
在这里插入图片描述
代码:

async function batch(rules) {
  for (let rule of rules) {
    let args = [{
      ruleId: rule._id
    }]
    await api.movebyRule(args).then(result => {          
      rule.import_status = result[0].msg
    })
  }
  return await rules
}
batch(_this.rules).then(function(rules) {
  _this.rules = rules
  Message.success({ message: "迁移成功" })
})

根据接口返回的结果再循环发送请求

前提:用户需要把10000个号码全部移到自己的数据库
分析:
(1)每次只迁移100个号码,循环迁移;
(2)迁移完成后,提示给用户;
页面:
在这里插入图片描述
知识点:递归,async
代码:

async fnMoveDocument() {
	 let result = await apiDoc.move()
	 Message.success({ message: '计划迁移'+ result.planMoveTotal +'条,剩余' + result.spareTotal +'条,失败'+ result.failMoveTotal +'条'})
	 if (result.spareTotal <= 0) {    
	   Message.success({ message: '数据同步已完成'})
	   return result
	 }
	 return this.fnMoveDocument()
},
this.fnMoveDocument().then(() => {
  console.log('迁移完成')
})

注:return this.fnMoveDocument()是这个方法中的精髓

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章