2017-04-16 6 views
1

Promise<T>PromiseKitからReactiveSwiftSignalProducerに変換しようとしていますが、問題が発生しています。誰かが私を正しい方向に向けることができますか?PromiseKitをSignal&SignalProducerに変換する

現在、私は持っている:

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) 
      } 
     } 
    } 
} 

私はrxjs' fromPromise方法をエミュレートしようとしています。

+0

これは私が自分自身をやっていないことでした。プロミスキットの性質は全く不思議であるようです。 –

答えて

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) 
      } 
     } 
    } 

} 
関連する問題