RxJS:重试链的一部分

时间:2018-06-13 12:31:19

标签: javascript rxjs observable

return this.showPasswordDialog()
    .flatMap(password => doSomethingAndReturnPromise(..))
    .subscribe(console.log);

我有一个密码对话框,它返回Observable我可以订阅并从中获取密码。

该密码被传递给函数doSomethingAndReturnPromise,该函数可以成功2)或失败但总是返回一个承诺。

如果失败,我想显示密码对话框并再次将其传递给promise函数...但最多3次。

如何以对话和retry(3)链作为整体重试的方式使用RxJS doSomethingAndReturnPromise运算符?

1 个答案:

答案 0 :(得分:1)

您只需将retry(3)放在flatMap之后:

return this.showPasswordDialog()
  .flatMap(password => doSomethingAndReturnPromise(..))
  .retry(3)
  .subscribe(console.log);