是否有 rx 运算符合并流,但一次合并一个流?
Is there an rx operator that merges streams, but one stream at a time?
我想将两个 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)。另外我不确定它是否在开始第二个之前完成了第一个...
在我的文章 Recipes for Combining Observables in RxSwift 中了解更多关于 RxSwift 中所有组合运算符的信息 Recipes for Combining Observables in RxSwift。
您要找的接线员叫concat
。有一个方法以及几个静态函数重载。
在库中的“Concat.swift”文件中查找各种版本的运算符及其文档。
顺便说一句,zip
运算符和 combineLatest
也同时启动两个 Observables。
我想将两个 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)。另外我不确定它是否在开始第二个之前完成了第一个...
在我的文章 Recipes for Combining Observables in RxSwift 中了解更多关于 RxSwift 中所有组合运算符的信息 Recipes for Combining Observables in RxSwift。
您要找的接线员叫concat
。有一个方法以及几个静态函数重载。
在库中的“Concat.swift”文件中查找各种版本的运算符及其文档。
顺便说一句,zip
运算符和 combineLatest
也同时启动两个 Observables。