簡體   English   中英

如何在RXJS中延遲發出值?

[英]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嗎? 因為基本上沒有人告訴它停止。

jsbin

您可以延遲每個發射本身,然后等到上一個發射完成。 例如:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM