在调用后台方法的时候,由于调用了多个方法,但是执行的时候并没有按照顺序执行,前端需要后台返回的数据,对数据进行页面展示,由于没有按照顺序执行,导致前台页面报错。解决办法采用new Promise单独执行每个方法,并返回resolve。以下是实现方法:
// 获取标签和绘制曲线数据
mainMethod() {
// 执行方法1
this.method1().then((val) => {
// 方法2
this.method2().then((val) => {
// 方法3
this.method3().then((val) => {
// 等待方法1、2、3 执行完成后执行方法“lastMethod”
this.lastMethod();
});
});
});
},
// 方法1
method1() {
return new Promise((resolve, reject) => {
// 调用后端接口getMethod1
getMethod1("CT01").then((response) => {
this.detail_method1 = response.data;
resolve( this.detail_method);
});
});
},
// 方法2
method2() {
return new Promise((resolve, reject) => {
// 调用后端接口getMethod2
getMethod2("CT02").then((response) => {
this.detail_method2= response.data;
resolve(this.detail_method2);
});
});
},
// 方法3
method3() {
return new Promise((resolve, reject) => {
// 调用后端接口getMethod3
getMethod3( "CT03").then((response) => {
this.detail_method3 = response.data;
resolve(this.detail_method3);
});
});
},
lastMethod() {
// 需要执行的方法内容
}