不間斷更新~項目中常用的小邏輯

項目中常用的小邏輯

前提還是要打好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()是這個方法中的精髓

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