Angular Ionic-调用2个订阅函数并等待它们完成
我正在使用Ionic构建一个移动应用程序。 其中我有两个API调用,可以同时运行,在它们都完成后,我需要根据第一个响应中的数据更改第二个响应中的数据。因此,我需要确保在运行第三个函数(操作数据)时,两个API调用都已完成 API调用1:Angular Ionic-调用2个订阅函数并等待它们完成,angular,ionic-framework,subscribe,Angular,Ionic Framework,Subscribe,我正在使用Ionic构建一个移动应用程序。 其中我有两个API调用,可以同时运行,在它们都完成后,我需要根据第一个响应中的数据更改第二个响应中的数据。因此,我需要确保在运行第三个函数(操作数据)时,两个API调用都已完成 API调用1: getExpenses() { this.api.getExpenses().subscribe(response => { this.expenses = response; }); } API调用2: getPayMe
getExpenses() {
this.api.getExpenses().subscribe(response => {
this.expenses = response;
});
}
API调用2:
getPayMethods() {
this.api.getPayMethods().subscribe(response => {
this.methods = response;
});
}
操作数据的函数:
extendPayMethodData(){
modifyData();
}
在构造函数中
我运行:
this.getPayMethods();
this.getExpenses();
this.extendPayMethodData();
但这不起作用,因为调用extendPayMethodData
时,其他函数尚未完成。
我尝试使用:
Observable.forkJoin(
this.getPayMethods(),
this.getExpenses()
).subscribe(_ => this.extendPayMethodData())
但是我得到了这个错误:
错误:(26,7)TS2345:类型为“void”的参数不能分配给类型为“SubscribableOrPromise”的参数
最好的方法是什么?既不是
this.getPayMethods
也不是this.getExpenses
返回它们的可观察值,这就是为什么您会看到这个错误
请尝试以下方法:
Observable.forkJoin(
this.api.getPayMethods(),
this.api.getExpenses()
).subscribe(_ => this.extendPayMethodData())