我正在寻找一种方法来获得一个运行的发射值计数器并使用该数字以及"真实的" Observable
发出的值。
Obs: |-- A --- B ----- C ---- D |
Res: |--[A,1]---[B,2]-----[C,3]----[D,4]|
所以,我希望新的Observable发出一个既包含计数也包含原始值的数组。
var letters = Rx.Observable.of(A, B, C, D);
var result = letters.thisOperator(); //version 1
var result = Rx.Observable.thisOperator(letters); // 2
result.subscribe(x => console.log(x));
[A, 1]
[B, 2]
[C, 3]
[D, 4]
答案 0 :(得分:1)
您可以使用map
:
Rx.Observable.of('A', 'B', 'C', 'D')
.map((val, i) => [val, i])
.subscribe(console.log);
或者您可以更轻松地map
:
.map((...args) => args)
打印:
[ 'A', 0 ]
[ 'B', 1 ]
[ 'C', 2 ]
[ 'D', 3 ]