我们实际开发中经常需要调用接口,这就避免不了要了解异步,也就是一个请求并不会等待上一个想执行的请求后进行
如果想实现顺序请求,就需要等待上一个请求结束返回时再调用下一个请求的函数
举个例子:
我们实际开发经常会碰到一个请求的返回结果是下一个请求的参数,那么一般的方法就是等上个请求返回后进行,一般写法:
//提交审核
submit() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
// this.loading = true;
this.$api.getFirstResult().then((res1) => {
this.$api.getSecondResult({ value: res1.value }).then((res2) => {
this.$api.getThirdResult({ value: res2.value }).then((res3) => {
this.$api.getFourthResult({ value: res3.value }).then((res4) => {
console.log(res4);
});
});
});
});
}
});
},
利用async和await写法:
//提交审核
submit() {
this.$refs.ruleForm.validate(async (valid) => {
if (valid) {
// this.loading = true;
let res1=await this.$api.getFirstResult()
let res2=this.$api.getSecondResult({ value: res1.value })
console.log(res2);
}
});
},
这样就会避免无限套娃啦。。。
职场菜鸟,写的不好,欢迎留言