Что происходит с отдельными сбоями в сочетании с LatestLatest?
Если у меня есть два SignalProducers (на самом деле они являются запросами на обслуживание API, поэтому они отправляют "следующий" только один раз) и объединяют их с combLatest (так как я хочу отклонить спиннер загрузки после завершения обоих), что произойдет, если один из них завершится неудачно? Или оба терпят неудачу?
Вызывается ли 'fail' (один или два раза?) На объединенном сигнале?
Если один не удастся, а другой - удастся, будет ли вызываться "следующий" для объединенного сигнала?
1 ответ
Сбой любого сигнала приведет к ошибке всего объединенного сигнала и остановке подписки.
Если один сигнал отправляет свой первый следующий, а другой сигнал отправляет ошибку в качестве своего первого значения, то следующий будет потерян, combineLatest:
вызывается только один раз, когда все сигналы отправляют свое первое следующее значение.
subscribeError:
вызывается только один раз. Ошибки работают монадическим образом, когда они всплывают в цепи и останавливают весь сигнал.
Если вы хотите подорвать это, вы можете использовать catch:
, catchTo:
, или же retry
методы для обработки ошибок.
(Извините за разговор о методах Objective C, я не знаю синтаксис Swift).