当Angular尝试连接时,我想显示“正在连接”。我可以在第一次连接时执行此操作,但是使用retryWhen()时我不知道该如何执行。我需要了解实际执行情况,然后执行以下操作:
this.connectionStatus = "Connecting"
当前代码:
this.connectionStatus = "Connecting";
let socket = new WebSocketSubject(..);
this.socket
.pipe(retryWhen(errors =>
errors.pipe(
tap(val => {
console.log("Retry in 10 sec", val);
}),
delay(10000)
)))
.subscribe(..);
答案 0 :(得分:0)
仅在延迟后设置状态。 retryWhen
希望您返回一个可观察对象,当该可观察对象发出时,它将开始重试连接,即在delay
之后开始重试
errors.pipe(
tap(val => {
console.log("Retry in 10 sec", val);
}),
delay(10000),
tap(()=>this.connectionStatus = "Connecting"
)
)))