2017-01-22 51 views

回答

38

forkJoin不仅需要完成所有输入可观测量,还会返回一个可观测量,该可观测量产生一个单值,该单值是由输入可观测值产生的最后一个值的数组。换句话说,它等到最后一个输入的observable完成,然后产生一个值并完成。

与此相反,combineLatest返回一个Observable,一旦所有输入可观察项产生至少一个值,每次输入可观察项都会产生一个新值。这意味着它可能有无限的价值,可能无法完成。这也意味着输入可观测量在产生一个值之前不必完成。

+0

@GregL是否有一个像forkJoin一样工作的函数,但也可用于失败http调用? – Tukkan

+1

@Tukkan,我会链接一个从错误恢复到每个http observable的操作符,以便为错误中的每个请求定义要使用的值,而不是查找将组合多个可能会出错的observable的操作符我不确定这样的运营商是否存在)。从错误中恢复的操作符包括'.catch()','.onErrorResumeNext()'和可能的'.retry()'(如果Http调用可能间歇性失败)。 – GregL

相关问题