Использование повтора вызывает странное синхронное поведение - PullRequest
0 голосов
/ 02 января 2019

Когда Observable C() завершается неудачно, запускается и вводит повтор, все остальные потоки оказываются заблокированными.

Observable.combineLatest(Auth(), B())
 .switchMap(([auth, b]) => C(auth.id, b.resp)())
 .retry(2)
 .subscribe({})

Функция Auth возвращает Observable, структурированный как

Stream.take(1)
  .map(s => s.userSession)
  .filter(s => s.type === 'AuthedUserSession')
  .map(assertAsAuthedSession)

Auth используется в некоторых других местах с combineLatest столяром. B() - наблюдаемый ajax. Я пытался использовать retryWhen, когда задержка, но, похоже, ведет себя так же. Возможно ли, что я заблокировал везде, где используется Auth(), используя его с блоком повторных попыток?

1 Ответ

0 голосов
/ 02 января 2019

Попробуйте «forkJoin» вместо «ОбъединитьПоследний», в вашем случае это выглядит удобнее.Не уверены, что проблема решена, можете ли вы настроить игровую площадку для своего случая?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...