有没有一个rx运算符可以合并流,但一次只能合并一个流



我想将两个observable流合并为一个流,就像使用.merge()运算符一样。我不使用该运算符的原因是它同时运行observables。我需要一个合并两个流的运算符,但在从第二个流开始之前完成第一个流,因此响应将类似于:"stream1Value1", "stream1Value2", "stream2Value1", "stream2Value2".

使用.merge()运算符,代码看起来是这样的:

Observable.merge(self.getParameter(id: id).asObservable(), self.getSecondaryParameter(id: id).asObservable()).asSingle()

但是给了我这样的输出:"stream1Value1", "stream2Value1", "stream1Value2", "stream2Value2".

我尝试过使用Single.zip(),但这给了我两个parameters($0和$1(。此外,我不确定它是否在第二个开始之前完成了第一个。。。

在我的文章《RxSwift中组合Observables的食谱》中了解有关RxSwi夫特中所有组合运算符的更多信息。

您要查找的操作员名为concat。有一个方法以及几个静态函数重载。

在";Concat.swift";库中各种版本的操作员及其文档的文件。

BTW、zip操作符以及combineLatest也同时启动两个Observable。

最新更新