测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布日期上次发布日期 | 2017年12月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✓ |
由Quan Vo,Wilson Ding维护。
GroupWork是一个易于使用的Swift框架,可以帮助您以干净和有序的方式编排您的并发、异步函数。这有助于使具有多个异步任务的大型函数更清晰且易于跟踪。
对于CocoaPods,将其添加到Podfile
pod 'GroupWork', '~> 0.0'
对于Carthage,将其添加到Cartfile
github "quanvo87/GroupWork"
对于SPM,将其添加到项目的包依赖中
.package(url: "https://github.com/quanvo87/GroupWork.git", .upToNextMinor(from: "0.0.0"))
GroupWork.swift
拖放到项目树中GroupWork.xcodeproj
import GroupWork
...
func complexFunc(completion: @escaping (Bool) -> Void) {
let work = GroupWork()
work.asyncFuncA()
work.asyncFuncB()
work.asyncFuncC()
work.allDone() {
completion(work.result)
}
}
...
complexFunc
是一个函数,它返回三个并发运行的异步函数asyncFuncA()
,asyncFuncB()
和asyncFuncC()
的结果。只有当所有这些函数都完成后,才会调用完成处理程序。使用此库启用了上述干净的界面。这可以扩展到超过三个异步函数。
注意
work.result
仅是一个简单的Bool
为了从上述内容创建complexFunc()
,需要进行一些设置
import GroupWork
extension GroupWork {
func asyncFuncA() {
start()
networkCallA() { (result)
self.finish(withResult: result)
}
}
func asyncFuncB() {
start()
networkCallB() { (result)
self.finish(withResult: result)
}
}
func asyncFuncC() {
start()
networkCallC() { (result)
self.finish(withResult: result)
}
}
}
现在您可以使用GroupWork
创建一个,并像示例中那样调用它的work.simpleFuncA()
。
注意
start()
finish()
start()
和finish()
调用必须平衡在测试中有一个工作示例。
请提供归属,非常感谢。