gpt4 book ai didi

javascript - 从另一个可观察对象发出数据后的刷新间隔

转载 作者:行者123 更新时间:2023-12-03 03:24:03 25 4
gpt4 key购买 nike

我有两个可观察对象

const refreshClick$ = Observable.fromEvent(this.btn, 'click').startWith('click')
const interval$ = Observable.interval(5000, 5000)

this.subscription = interval$
.merge(refreshClick$)
.flatMap(() => this.grabSomeData())
.subscribe(newState => this.setState({newState}))

在从可观察到的refreshClick$接收事件后,有没有办法重置间隔或延迟它?因此,在单击事件之后,setState 方法将正常执行,但间隔将在额外的操作后返回,例如5秒

最佳答案

您可以使用 switchMap 运算符。一旦有新的点击,它将完成间隔可观察并开始新的间隔可观察。

const refreshClick$ = Observable.fromEvent(this.btn, 
'click').startWith('click');
const interval$ = Observable.interval(5000);

refreshClick$.switchMap(()=>interval$)
.subscribe(x=>console.log(x));

关于javascript - 从另一个可观察对象发出数据后的刷新间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46432608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com