【发布时间】:2018-08-27 17:24:47
【问题描述】:
首先,我想用一个简单的计数重试:
- 重试源 observable
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) 结合使用。如果我链接重试运算符,它们会相互触发。
【问题讨论】:
标签: rxjs observable retrywhen