我在Angular 5中使用RxJs 5 lettable运算符。 基于此代码示例,重试将如何工作?将错误传播到第一次重试,如果失败,它将传播到第二次?
首先观察到:
first() {
return Observable.create(observer => {
observer.error('Something went wrong!')})
}).pipe(retry(3))
}
第二个可观察的订阅方法调用:
first().pipe(retry(1)).subscribe()
谢谢!
答案 0 :(得分:2)
生成的流有效地看起来像这样:
Observable.create(...).pipe(retry(3), retry(1));
因此subscribe
将执行第一次订阅,然后retry(3)
将对源observable执行3次订阅,然后将错误传播到下一个retry(1)
,而后者将运行前面的序列Observable.create(...).pipe(retry(3))
再次如此,如果你将console.log('subscribed')
放入生成器函数中,你将有8个日志条目。