我正試圖圍繞 RxJS。在進行一些測驗時,我遇到了一些我無法弄清楚的事情。
這是代碼:
let product = { id: 1, description: 'table' };
const asyncProduct = timer(2000).pipe(() => of(product));
asyncProduct.subscribe(data=>console.log(data))
我希望product在 2 秒后登錄到我的控制臺,但是由于某種原因它立即登錄。我有什么誤解?謝謝。
uj5u.com熱心網友回復:
要在 n 秒后發出,您需要使用delay運算子 not timer。
因此,您需要以這種方式更改代碼:
const asyncProduct = of(product).delay(2000)
asyncProduct.subscribe(data => console.log(data))
更新:您可以使用timer運算子,pipe然后在其中使用另一個運算子,如下所示:
timer(2000).pipe(
switchMap(() => of(product))
).subscribe(data => console.log(data))
通過這種方式,價值將在 2 秒后發情,實作您的目標。是另一種方式,而不是我之前提供的第一個示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/433927.html
