在观察者工作之前如何等待调用方法?
How to await call method until observers works?
我有一些可观察的函数:
function a(): Observable<any> { }
function b(): Observable<any> { }
在我将这些 observables 合并为一个之后:
let awaitingObservers = [a(), b()];
public getObservables() {
forkJoin(awaitingObservers).subscribe(results => {
return results;
});
}
所以,我调用的最后一个函数是:
function start() {
if (this.currentForm().functions) {
this.currentForm().functions.iterate();
this.currentForm().functions.getObservables();
}
/* Return next form */
this.current = nextForm;
}
此函数检查是否退出任何要调用的可观察方法,然后调用 this.currentForm().functions.iterate();
在线订阅后:this.currentForm().functions.getObservables();
.
如何等待这个过程,而不是在所有可观察值 returns 结果时才调用:this.current = nextForm;
?
我的问题是:
- 如果存在可观察对象列表,调用它们,然后才执行行:
this.current = nextForm;
我会将您的分叉流进一步传输到启动函数
public getObservables():Observable<[X,Y]>{
return forkoin(awaitingObservers);
}
然后在您要处理的地方等待结果
函数开始(){
if (this.currentForm().functions) {
this.currentForm().functions.iterate();
this.currentForm().functions.getObservables().subscribe( data => this.current = nextForm)
}
}
为什么我会那样做?
"getObservables" 方法只是进行分叉的一种便捷方法。它不是数据的真正处理器。
结果的处理器在您的 "start" 函数中。而且我认为处理器应该始终负责触发订阅。
因此,我会在开始功能中进行订阅。
热烈的问候
我有一些可观察的函数:
function a(): Observable<any> { }
function b(): Observable<any> { }
在我将这些 observables 合并为一个之后:
let awaitingObservers = [a(), b()];
public getObservables() {
forkJoin(awaitingObservers).subscribe(results => {
return results;
});
}
所以,我调用的最后一个函数是:
function start() {
if (this.currentForm().functions) {
this.currentForm().functions.iterate();
this.currentForm().functions.getObservables();
}
/* Return next form */
this.current = nextForm;
}
此函数检查是否退出任何要调用的可观察方法,然后调用 this.currentForm().functions.iterate();
在线订阅后:this.currentForm().functions.getObservables();
.
如何等待这个过程,而不是在所有可观察值 returns 结果时才调用:this.current = nextForm;
?
我的问题是:
- 如果存在可观察对象列表,调用它们,然后才执行行:
this.current = nextForm;
我会将您的分叉流进一步传输到启动函数
public getObservables():Observable<[X,Y]>{
return forkoin(awaitingObservers);
}
然后在您要处理的地方等待结果
函数开始(){
if (this.currentForm().functions) {
this.currentForm().functions.iterate();
this.currentForm().functions.getObservables().subscribe( data => this.current = nextForm)
}
}
为什么我会那样做? "getObservables" 方法只是进行分叉的一种便捷方法。它不是数据的真正处理器。 结果的处理器在您的 "start" 函数中。而且我认为处理器应该始终负责触发订阅。 因此,我会在开始功能中进行订阅。
热烈的问候