[英]RxJS: how to emit values of a certain buffer size with a delay between each group
[英]How can I emit values with delay in RXJS?
我有一個值數組[1,2,3]
。
我想延遲發出每個值
我已經設法用zip
運算符做到了:
Rx.Observable.from([1,2,3])
.zip(Rx.Observable.timer(0, 1000), x => x)
.subscribe((e) => console.log(e));
題:
是否還有其他合適的運算符可用於此類任務? 在我看來,涉及內在的可觀察性似乎是不正確的方法。
我應該手動取消訂閱內部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));
如果要使用zip
,則無需取消訂閱timer
而是需要告訴timer
完成操作(例如,使用take()
或takeUntil()
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.