嵌套的RxJs重试运算符如何工作?

问题描述 投票:2回答:1

我在Angular 5中使用RxJs 5 lettable运算符。根据此代码示例,重试将如何工作?将错误传播到第一次重试然后如果失败它将传播到第二次?

首先观察到:

first() {
  return Observable.create(observer => {
     observer.error('Something went wrong!')})
  }).pipe(retry(3))
}

第二个可观察的订阅方法调用:

first().pipe(retry(1)).subscribe()

谢谢!

angular rxjs rxjs5
1个回答
2
投票

生成的流有效地看起来像这样:

Observable.create(...).pipe(retry(3), retry(1));

因此subscribe将执行第一次订阅,然后retry(3)将对源可观察执行3次订阅,然后将错误传播到下一个retry(1),这反过来将再次运行前面的序列Observable.create(...).pipe(retry(3)),所以如果你把console.log('subscribed')放入生产者函数你'将有8个日志条目。

© www.soinside.com 2019 - 2024. All rights reserved.