首先,我想使用一个简单的计数重试:
- 重试源可观察
n
次数。 - 然后,发出错误。
(最好在每次重试后立即发出错误,但retry(count)
似乎没有这样做。)
如果我理解正确,这是以下行为retry(count)
:
{
new Rx.Observable(observer => {
console.log("subscribe");
observer.error("ERROR");
})
.retry(3)
.subscribe({
error: console.log
});
}
// subscribe
// subscribe
// subscribe
// subscribe
// ERROR
然后,我想允许用户手动重试。当一个重试通知 observable ( retry$
) 发出时,再次重试 observable,之后每次都发出错误。
我尝试使用retryWhen
它,但是虽然确实发生了重试,但永远不会发出错误。
我想重试但也发出任何错误,以便在重试运行时可以在用户界面中显示它们。
{
const retrySubject = new Rx.Subject();
const retry$ = retrySubject.asObservable();
new Rx.Observable(observer => {
console.log("subscribe");
observer.error("ERROR");
})
.retryWhen(() => retry$)
.subscribe({
error: console.log
});
retrySubject.next();
}
// subscribe
// subscribe
此外,我不确定如何将其与retry(count)
. 如果我链接重试运算符,它们会相互触发。