RxSwift - withLatestFrom组合来自两个可观察量的值

时间:2017-11-03 14:45:46

标签: swift reactive-programming rx-swift

我想达到这样的结果:

L -1-2-3------4------5-6-7-8----
R ---------A------B----------C--

O ---------A3-----B4---------C8

所以基本上就像withLatestFrom,但结合了两个observable的值(比如最新的组合)。

我想没有现成的操作员。知道如何实现这个目标吗?

3 个答案:

答案 0 :(得分:13)

只需使用withLatestFrom中的结果选择器即可。没有闭包的重载实现只是忽略了第一个observable。例如:

Observable.just("one")
  .withLatestFrom(Observable.just(1)) 
  { oneAsString, oneAsInt in return (oneAsString, oneAsInt) }

答案 1 :(得分:2)

您可以public function up() { Schema::table('clients', function (Blueprint $table) { $table->string('pathlogo')->default('/'); }); } 使用combineLatest后跟distinctUntilChanged来实现此目的。

map

答案 2 :(得分:1)

简短版本,其中R = input.r和L = input.l

let output = input.r
.withLatestFrom(input.l) { ($0, $1) }