2017-12-20 25 views
0

RxAlamofire를 사용하여 파일을 다운로드하고 있습니다. 나는 이런 식으로 뭔가가 : RxAlamofire - 다운로드 이벤트가 누락되었습니다.

let downloadResult = download(request, to: destination) 

불행하게도 완료 다운로드에 다음 이벤트를 방출하지 않는 관찰 downloadResult를, 그것은 단지 onCompleted을 방출한다.

다운로드가 완료되면 다음 요청으로 flatMap이 필요합니다. 현재 진행 상황 (다운로드 진행> = 1)에 관심이있는 이벤트를 내 보냅니다.

그러나 나는 그것이 최상의 해결책은 아니라고 생각하지만 현재는 효과가 있습니다. 그러나 나는 두려워합니다. 이 aproach는 어떤 상황에서는 실패 할 수 있습니다.

제안 할 수 있습니까? RxAlamofire 다운로드 API에서 뭔가를 놓치고 있습니까?

답변

0

어쩌면 이렇게 할 수 있을까요?

Single<Void>.create { observer in 
    return download(request, to: destination) 
     .subscribe(onCompleted: { 
      observer(.success(())) 
     }, onError: { 
      observer(.error($0)) 
     })