项目中常用的小逻辑
前提还是要打好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()
是这个方法中的精髓