FuturePromise 0.2.0

FuturePromise 0.2.0

Alex Manarpies维护。



FuturePromise,适用于iOS的Swift承诺实现,移植自苹果自家的SwiftNIO项目

Carthage compatible Cocoapods compatible

简介

2018年3月,苹果发布并开源了其SwiftNIO项目,苹果自己表示该项目是

"一个跨平台异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端"

虽然这个框架主要是针对(Linux)服务器上的Swift,但我注意到它包含一个FuturePromise的实现。SwiftNIO(NIO = “非阻塞输入输出”)及其承诺实现基于事件循环进行并发,但将其移植到使用DispatchQueue来代替是直截了当的。

这个GitHub仓库就是那个努力的成果。

目标

该项目的目标是维护一个与SwiftNIO的FuturePromise实现兼容的端口,用于iOS(和macOS)项目,直到Swift拥有更好的并发形式,例如协程或async await

在此期间,SwiftNIO的承诺实现可以被认为是苹果在苹果平台上认可的第一且唯一的一种众所周知的并发模式。

安装

CocoaPods

在您的 Podfile 中添加以下内容,然后运行 pod install

pod 'FuturePromise'

Carthage

在您的 Cartfile 中添加以下内容,然后运行 carthage update

github "jarrroo/FuturePromise"

文档

生成的文档页面可在 此处 找到。

用法示例

来自 Apple 的 SwiftNIO 文档

doWork().then {
  doMoreWork($0)
}.then {
  doYetMoreWork($0)
}.thenIfError {
  maybeRecoverFromError($0)
}.map {
  transformData($0)
}.cascade(promise: userPromise)