項目中常用的小邏輯
前提還是要打好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()
是這個方法中的精髓