情况如下: 我有一个websocket用于应用程序和服务器之间的通信.如果websocket坏了,我想启用备份长轮询,直到websocket再次激活.
我想到创建一个根据WS的连接/断开来改变状态的信号布尔值.如果WS是活动的,我将信号设置为true,否则设置为false.
WSStatus = signal(false);
WS is up: this.WSStatus(true)
WS go down: this.WSStatus(false)
我曾想过做类似的事情,但是takeUntil等待Observable,我无法用Observable替换Signal操作
this.startPolling(5000).pipe(takeUntil(!this.WSStatus())).subscribe()
startPolling(interval: number = 5000): Observable<string> {
return timer(0, interval)
.pipe(
switchMap( () => { return this.myHttpRequest() })
);
}