【发布时间】:2018-10-31 00:03:22
【问题描述】:
我不明白为什么我可以这样做
ForkJoin(service.Obs1(), service.Obs2()).subscribe
但是,如果我重构我的代码,以便向我的服务类添加一个返回 ForkJoin(this.Obs1(), this.Obs2()) 的方法,例如
updateWhatever(): Observable<[string, string]> {
return forkJoin([
this.Obs1(),
this.Obs(2)
]);}
然后如果我做service.updateWhatever().subscribe(res => //handle res[].,它会抛出错误
You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable
为什么这不起作用?人们应该能够以这种方式进行重构。我错过了什么?我意识到它返回了一个可观察的数组,但是为什么函数调用不处理这个呢?
也许我的问题是,如何处理返回 forkJoin 的方法?
【问题讨论】:
-
为什么要将数组传递给第二个 forkJoin?
-
@Axel 可以返回 forkJoin ,在您的代码中,问题是 ob1 和 ob2 不是 observable、promise、array 或 Iterable。这就是 rxjs 抛出错误的原因。可以分享一下ob1和obj2的代码吗
-
@Axel,你用的是哪个版本的 Rxjs?
-
@Axel 我已经为你添加了一个代码示例。也许这也会得到一些想法
标签: angular typescript rxjs