将 PromiseKit 转换为 Signal 和 SignalProducer
Posted
技术标签:
【中文标题】将 PromiseKit 转换为 Signal 和 SignalProducer【英文标题】:Converting PromiseKit to 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 的本质很神秘。 【参考方案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)
【讨论】:
以上是关于将 PromiseKit 转换为 Signal 和 SignalProducer的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PromiseKit 6.3 返回 Promise<JSON>
使用 PromiseKit 6 在 Swift 4.2 中缓存