RxJS: повторить часть цепи - PullRequest
0 голосов
/ 13 июня 2018
return this.showPasswordDialog()
    .flatMap(password => doSomethingAndReturnPromise(..))
    .subscribe(console.log);

У меня есть диалоговое окно с паролем, которое возвращает мне Observable, где я могу подписаться и получить пароль от него.

Этот пароль передается функции doSomethingAndReturnPromise, которая 1) может быть успешной 2) или терпит неудачу, но всегда возвращает обещание.

В случае неудачи я хочу показать диалоговое окно пароля и снова передать его функции обещания ... но максимум 3 раза.

Как можноЯ использую оператор RxJS retry(3) таким образом, что диалог и цепочка doSomethingAndReturnPromise повторяются в целом?

1 Ответ

0 голосов
/ 13 июня 2018

Вы просто ставите retry(3) после flatMap:

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