Я прочитал, что в одном сообщении говорится, что лучшая практика для работы с RxSwift - передавать только фатальную ошибку в onError и передавать Result в onNext.
Это имеет смысл для меня, пока я не пойму, что могу 'больше не иметь дело с повторной попыткой, так как это происходит только в onError.
Как мне решить эту проблему?
Другой вопрос: как обрабатывать глобальные и локальные повторные миксы?
Примером может служить проверка квитанции iOS.flow.
1, попробуйте получить квитанцию локально
2, если не удалось, запросите последнюю квитанцию у сервера Apple.
3, отправьте квитанцию на наш сервер для проверки.
4, если успех, то весь поток завершен
5, если не удалось, проверьте код ошибки, если он повторяется, затем вернитесь к 1.
и вnew 1, это заставит запрашивать новую квитанцию с сервера Apple.затем, когда он снова достигнет 5, весь поток остановится, поскольку это уже вторая попытка.значение только повторяется.
Так что в этом примере, если используется конечный автомат и без использования rx, я в конечном итоге использую конечный автомат и разделяет некоторые глобальные состояния, такие как isSecondAttempt: Bool
, shouldForceFetchReceipt: Bool
и т. д.
Как мне спроектировать этот поток в rx?с этими глобальным общим состоянием, разработанным в потоке.