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