在这段代码中,subscribe函数在loadFromDB函数的最后一行之后执行:
loadFromDB(){
const loading = this.loadingCtrl.create({
content: 'pleas wait'
});
loading.present();
this.getInterviewFromDB()
.subscribe((data) => {
this.events = data;
console.log( 'before');
});
this.getMeetingsFromDB().subscribe((data)=>{
this.events.concat(data);
});
loading.dismiss();
console.log( 'after');
}

加载存在并在从数据库加载任何数据之前解除 这是日志的输出
答案 0 :(得分:1)
这非常有意义。您正在订阅异步流。你不能指望他们按顺序完成。如果你希望它们同时完成,你可以这样做:
Observable.forkJoin(this.getInterviewFromDB(), this.getMeetingsFromDB())
.subscribe(res => {
let interviews = res[0];
let meetings = res[1];
})
答案 1 :(得分:0)
这是回调的工作方式。 SaveChanges()
将回调函数作为参数。我建议你在继续之前了解回调是什么以及它们是如何工作的。
以下是subscribe
工作原理的一些信息:ReactiveX subscribe function
Robin在subscribe
的回答中提供了一个很好的解决方案。 forkJoin
将多个Observable发出的值连接到一个数组中,并创建一个新的Observable。然后,您可以订阅此Observable,就像Robin在他的示例中所做的那样,获取数组值,这是回调的第一个参数。