RxJava CombineПоследний onError - PullRequest
       12

RxJava CombineПоследний onError

0 голосов
/ 25 февраля 2019

Я использую RxJava CombineLatest с двумя наблюдаемыми.Мой вопрос, будет ли вызван комбинат onNext, если одна из наблюдаемых заканчивается на onError?

В документации показан счастливый сценарий, когда обе наблюдаемые правильно генерируют элементы, но я не смог найти, что произойдет в случае ошибки.

| ---- onError ---- |Observable1

| ----------- O ------- O ------ |Observable2

| --------------? ----------? ---- |CombineLatest - будет вызываться onNext?

1 Ответ

0 голосов
/ 25 февраля 2019

Общий контракт таков: координирующие операторы прекращают работу после получения первого onError из любого из своих источников, если только для параметра delayErrors не установлено значение true или для имени оператора не указан DelayError постфикс.

Существует дополнительное правило для combineLatest относительно короткого замыкания из-за пустых источников:

Если какой-либо из источников никогда не производит элемент, а только завершается (обычноили с ошибкой), результирующая последовательность завершается немедленно (обычно или со всеми ошибками, накопленными до этой точки).Если этот входной источник также является синхронным, другие источники после него не будут подписаны.

...