一个之前做的需求,甲方领导觉得一个个审批太麻烦要求增加批量审批功能,但是后台的逻辑特别复杂,不能轻易改动(也改不明白),最后压力给到前端 理一下逻辑,单个审批的时候从前一个页面进入审批页面,按顺序链式调用fun1,fun2,fun3三个接口,如果其中一个接口报错就返回前一个页面。 所以多个审批就是从前一个页面获取到需要审批的list列表,通过循环调用三个接口,发现问题通过 throw Error抛出错误,通过try catch捕获错误,中断循环
async created() {
let list = []
for (let i = 0; i < 10; i++) {
list.push(i+1)
}
console.log('模拟需要审批的list',list);
for (let j = 0; j < list.length; j++) {
const element = list[j];
try {
await this.fun1(element)
} catch (error) {
console.log(error);
return
}
}
}
methods: {
fun1(item){
console.log('fun1',item);
this.fun2(item)
return Promise.resolve()
},
fun2(item){
if(item==5){
throw Error('出错了')
}
console.log('fun2',item);
this.fun3(item)
return Promise.resolve()
},
fun3(item){
console.log('fun3',item);
return Promise.resolve()
},
}