【问题标题】:Converting PromiseKit to Signal & SignalProducer将 PromiseKit 转换为 Signal 和 SignalProducer
【发布时间】:2017-04-16 21:54:28
【问题描述】:

我正在尝试将 Promise<T>PromiseKit 转换为 ReactiveSwift 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 方法。

【问题讨论】:

  • 这是我自己做的有困难的事情。似乎 Promisekit 的本质很神秘。

标签: swift promisekit reactive-swift


【解决方案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)
            }
        }
    }

}

【讨论】:

    猜你喜欢
    • 2016-02-29
    • 1970-01-01
    • 2015-09-02
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多