我是RxJS的新手,试图做一个简单的演示,让您每隔一秒刷新一次数据。RxJS:点击后禁用刷新按钮持续时间
我做了一个按钮,并从中创建了一个点击流。 这个问题开始时,我想创建一个流,每个按钮点击发出错误,并在一秒钟后再次发出真实。
例如 - 初始状态为真,因为我们可以在开始时刷新。 一旦我点击按钮,新值应该是错误的点击后,因为我们不能进一步刷新。
最后一秒钟过后 - 值应该再次为真。
我试图创建它并成功,但它看起来很糟糕。 任何想法热点做得更好,更清洁? 另一件事是我真的不知道在这里使用RxJS是一个好主意,因为简单的常规方法是将布尔值设置为true,并在单击后将其设置为false,并使用setTimeout将其更改为true 。
这里是我做的:
// The stream of the button clicks.
$clicksStream
// Change the click stream to the timed true false change.
.switchMap(() => Observable
// Emit first value immediately and every 1 second after.
.timer(0, 1000)
// Map each one - 0 becomes false and others true.
.map(x => !!x)
// Take only first two items.
.take(2))
// Always the start value is true.
.startWith(true);