Итак, у меня есть приложение, которое использует конечную точку REST, но до того, как оно сможет ее использовать. Он должен вызывать конечную точку регистрации, которая назначает DeviceId устройству, которое должно использоваться во всех последующих вызовах API.
В настоящее время я использую Moya и RxSwift для цепочки и преобразования запросов.
Что я думал, что позвоню пользовательскому оператору по моему запросу так
self.mapRect
.waitForDeviceId()
.flatMap { [weak self] mapRect -> Single<Response> in
...
weakSelf.provider.rx.request(PCDepartmentTarget.list(coordinate: center, distance: maxDistance))
}
.map(to: [PCParkingLot].self)
.bind(to: self.parkingLotOVariable)
.disposed(by: self.disposeBag)
Где я думал, что waitForDeviceId() должно выглядеть примерно так.
extension ObservableType {
func waitForDeviceId<R>() -> Observable<R> {
PCDeviceIdService.shared.deviceIdObservable.flatMap { _ -> Observable<R> in
return self
}
}
}
Который явно не компилируется.
Есть ли у вас какие-либо идеи о том, как реализовать такой и оператор или, возможно, другой способ сделать это. Заранее спасибо.