Ionic - 调用 2 个订阅函数并等待它们完成
Ionic - Call 2 subscribe functions and wait until they finish
我正在使用 Ionic 构建移动应用程序。
其中我有2个API调用,可以同时运行,在它们都完成后,我需要根据第一个响应的数据更改第二个响应中的数据。所以我需要确保当我 运行 第三个函数(操作数据)时,它是在两个 API 调用完成之后。
API 调用 1:
getExpenses() {
this.api.getExpenses().subscribe(response => {
this.expenses = response;
});
}
API 调用 2:
getPayMethods() {
this.api.getPayMethods().subscribe(response => {
this.methods = response;
});
}
操作数据的函数:
extendPayMethodData(){
modifyData();
}
在constructor
我运行:
this.getPayMethods();
this.getExpenses();
this.extendPayMethodData();
但这不起作用,因为调用 extendPayMethodData
时其他函数尚未完成。
我尝试使用:
Observable.forkJoin(
this.getPayMethods(),
this.getExpenses()
).subscribe(_ => this.extendPayMethodData())
但是我得到这个错误:
Error:(26, 7) TS2345: Argument of type 'void' is not assignable to parameter of type 'SubscribableOrPromise'.
最好的方法是什么?
this.getPayMethods
和 this.getExpenses
return 都不是他们的可观察对象,这就是您看到该错误的原因。
试试这个:
Observable.forkJoin(
this.api.getPayMethods(),
this.api.getExpenses()
).subscribe(_ => this.extendPayMethodData())
我正在使用 Ionic 构建移动应用程序。 其中我有2个API调用,可以同时运行,在它们都完成后,我需要根据第一个响应的数据更改第二个响应中的数据。所以我需要确保当我 运行 第三个函数(操作数据)时,它是在两个 API 调用完成之后。
API 调用 1:
getExpenses() {
this.api.getExpenses().subscribe(response => {
this.expenses = response;
});
}
API 调用 2:
getPayMethods() {
this.api.getPayMethods().subscribe(response => {
this.methods = response;
});
}
操作数据的函数:
extendPayMethodData(){
modifyData();
}
在constructor
我运行:
this.getPayMethods();
this.getExpenses();
this.extendPayMethodData();
但这不起作用,因为调用 extendPayMethodData
时其他函数尚未完成。
我尝试使用:
Observable.forkJoin(
this.getPayMethods(),
this.getExpenses()
).subscribe(_ => this.extendPayMethodData())
但是我得到这个错误:
Error:(26, 7) TS2345: Argument of type 'void' is not assignable to parameter of type 'SubscribableOrPromise'.
最好的方法是什么?
this.getPayMethods
和 this.getExpenses
return 都不是他们的可观察对象,这就是您看到该错误的原因。
试试这个:
Observable.forkJoin(
this.api.getPayMethods(),
this.api.getExpenses()
).subscribe(_ => this.extendPayMethodData())