我有一个值数组[1,2,3]。
我想延迟发出每个值
我已经设法与zip运营商:
Rx.Observable.from([1,2,3])
.zip(Rx.Observable.timer(0, 1000), x => x)
.subscribe((e) => console.log(e));
Run Code Online (Sandbox Code Playgroud)
题:
是否还有其他合适的运算符可用于此类任务?在我看来,涉及内在的可观察性似乎是不正确的方法。
我应该手动取消订阅内部Observable吗?因为基本上没有人告诉它停止。
您可以延迟每个发射本身,然后等到上一个发射完成。例如:
Rx.Observable.from([1,2,3])
.concatMap(x => Observable.of(x).delay(1000)) // or Observable.timer(1000).mapTo(x)
.subscribe((e) => console.log(e));
Run Code Online (Sandbox Code Playgroud)
如果您想使用zip,则不需要取消订阅,timer而是需要告诉它完成操作(例如,使用take()或takeUntil())。
| 归档时间: |
|
| 查看次数: |
1348 次 |
| 最近记录: |