我试图通过在数组中定义多个函数来连续执行它们(特别是针对一个Angular APP_INITIALIZER函数).
我有这个数组:
const obsArray = [
myService1.init(),
myService2.init(),
...
myServiceN.init()
]
这init()
个方法中的每一个都返回Observable<void>
.下面是一个例子:
init() : Observable<void> {
return this.http.get(this.apiUrl)
.pipe(
// do something with the response
switchMap(() => EMPTY)
);
}
``SwitchMapstatement ensures that the return type is
Observable`.
我试过这个:
const init$ : Observable<void> = forkJoin(obsArray);
但它最多只能执行函数,而不是内部的HTTP调用.没有subscribe()
调用,因为这是在分配给APP_INITIALIZER
标记的Angular 工厂函数内.
我也试了concatMap()
次,但没有成功.
是否有一个rxjs函数可以在等待前一个函数完成时连续执行其中的每一个函数?
我已经跟进了这一点,有this question个.