0
各リクエストを処理したい場合、リクエストのレスポンスが条件と一致しない場合は、新しいリクエストを開始してレスポンスを取得します。どのように私はここに古い要求moya、rxswiftでネットリクエストを再開する方法
を再起動することができますことは、私のコードは今
static func request(target: API) -> Observable<Response> {
let actualRequest = provider.request(target)
return self.provider.request(target).flatMapLatest { (response) -> Observable<Response> in
let responseModel = ResponseModel(data:response.data)
if responseModel.code == -405 {
let refreshToken = User.shared?.refreshToken
self.provider.request(.refreshToken(refresh: refreshToken!)).flatMap({ response -> Observable<String> in
return Observable.just("")
}).shareReplay(1).subscribe(onNext: { refreshToken in
// here I get a new token, how to retry the actualRequest , or how to start a new network request with the target
}, onError: { (error) in
},onCompleted: { _ in
})
}
return Observable.just(response)
}
}
ここに記載されているように、* .switchLatest()*を使用してみてください - https://stackoverflow.com/a/47040856/856588 –