Я пытаюсь сделать пул, запрашивающий несколько раз одну и ту же услугу и проверяющий, равен ли статус завершенному состоянию.Проблема в том, что мой .subscribe (onNext:) никогда не вызывается.Есть идеи, где я ошибся?: x
statusDisposable = NetworkManager.shared.service(with: parameter)
.asObservable()
.flatMap({ [weak self] (status) -> Observable<TransactionStatus> in
guard let `self` = self else { return Observable.error(TransactionStatusCode.error) }
return NetworkManager.shared.service(with: parameter)
.asObservable()
.flatMap({ (status) -> Observable<TransactionStatus> in
let code = status.statusCode
return code == .finished ? Observable.just(status) : Observable.error(code ?? TransactionStatusCode.error)
})
.delaySubscription(10, scheduler: MainScheduler.instance)
.skipWhile({ $0.statusCode == .authorized })
.takeWhile({ !self.isFinished(status: $0) })
})
.subscribe(onNext: { [weak self] (status) in
if self?.isFinished(status: status) ?? false {
self?.terminateTransaction()
self?.completed.onNext(status)
} else {
self?.completed.onError(status.statusCode ?? TransactionStatusCode.error)
}
}, onError: { [weak self] error in
self?.completed.onError(error)
})