【发布时间】:2020-02-27 20:52:50
【问题描述】:
是否可以发出两个值来交换一个发出的值?
假设我有这个代码
of(1,2,3).pipe( <what goes here?> )
我希望得到的大理石图是
---1---1.5---2---2.5---3---3.5---->
即对于of 发出的每个值,将生成两个值。
【问题讨论】:
标签: rxjs
是否可以发出两个值来交换一个发出的值?
假设我有这个代码
of(1,2,3).pipe( <what goes here?> )
我希望得到的大理石图是
---1---1.5---2---2.5---3---3.5---->
即对于of 发出的每个值,将生成两个值。
【问题讨论】:
标签: rxjs
您可以通过mergeMap(或concatMap)做到这一点:
of(1,2,3)
.pipe(
mergeMap(v => [v, 2 + 0.5]),
)
mergeMap 将迭代从投影函数返回的数组并重新发送每个值。
【讨论】:
这里是 concatMap:
const mappingFn = n => Rx.Observable.of(n, n + 0.5);
o1.concatMap(mappingFn)
.subscribe(c => console.log(c));
mappingFn 将每个值映射到两个值
【讨论】: