2017-04-16 3 views
1

Promise<T>PromiseKit에서 ReactiveSwiftSignalProducer으로 변환하려고하는데 문제가 있습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있을까요? PromiseKit을 Signal & SignalProducer로 변환

현재 내가 가진 : 나는 rxjs ' fromPromise 방법을 모방하기 위해 노력하고있어

extension SignalProducer { 
    func from(promise: Promise<Value>) -> SignalProducer<Value, Error> { 
     return SignalProducer { observer, disposable in 
      promise.then { 
       observer.send(value: $0) 
       observer.sendCompleted() 
      }.`catch` { error in 
       observer.send(error: error) 
      } 
     } 
    } 
} 

.

+0

이것은 내가 스스로하는 데 어려움이 있습니다. 그것은 Promisekit의 본질이 아주 신비한 것처럼 보입니다. –

답변

1

이것은 내가 생각해 낸 것입니다.

extension SignalProducer where SignalProducer.Error: Swift.Error { 

    static func from(promise: Promise<Value>) -> SignalProducer<Value, Error> { 
     return SignalProducer { (observer: Observer<Value, Error>, disposable: Disposable) in 
      promise.then { value ->() in 
       observer.send(value: value) 
       observer.sendCompleted() 
      }.catch { (error: Swift.Error) -> Void in 
       observer.send(error: error as! Error) 
      } 
     } 
    } 

}