Avatar
Kishikawa Katsumi 5/15/2020 11:54 AM
extension Client { public func perform<Response>(request: Request<Response>) -> Future<Response, Error> where Response: Decodable { return Future<Response, Error> { [weak self] promise in self?.perform(request: request) { switch $0 { case .success(let response): promise(.success(response.body)) case .failure(let error): promise(.failure(error)) } } } } }
11:56 AM
^ こういうURLSessionのCompletionHandlerをFuture(Promise)にしてる実装があって、これはSinkする方で[weak self]しないとダメなんですけど呼び出される側の実装で回避できるかな?
11:57 AM
あ、これはそのさきのperformのCompletionHandlerをリトライのためにある程度保持するからかな?
11:58 AM
ちょっとまず自分でいろいろ確認してみます。