iOS Linux Swift CocoaPods Version Status CocoaPods CocoaPods Carthage compatible Build Status MIT License

GroupWork 是一个易于使用的 Swift 框架,它可以帮助你以一种清晰和有组织的方式编排你的并发、异步函数。这有助于使包含多个异步任务的大型函数更清晰易懂。

目录

  1. 要求
  2. 安装
  3. 文档
  4. 示例用法
  5. 工作示例
  6. 许可
  7. 作者

要求

Swift 4

安装

CocoaPods

对于 CocoaPods,添加到 Podfile

pod 'GroupWork', '~> 0.0'

Carthage

对于 Carthage,添加到 Cartfile

github "quanvo87/GroupWork"

Swift Package Manager

对于 SPM,添加到你的包依赖项

.package(url: "https://github.com/quanvo87/GroupWork.git", .upToNextMinor(from: "0.0.0"))

手动

文档

这里

示例用法

最终目标

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() 并发运行的结果。只有当所有这些函数都完成后,才会调用完成处理程序。使用此库实现了上述简洁的接口。这可以扩展到远高于三个异步函数。

注意

设置

为了从上面创建 complexFunc(),需要进行一些设置

import GroupWork

extension GroupWork {
  func asyncFuncA() {
    start()
    networkCallA() { (result) in
      self.finish(withResult: result)
    }
  }

  func asyncFuncB() {
    start()
    networkCallB() { (result) in
      self.finish(withResult: result)
    }
  }

  func asyncFuncC() {
    start()
    networkCallC() { (result) in
      self.finish(withResult: result)
    }
  }
}

现在你可以创建一个 GroupWork,并在其上调用 work.simpleFuncA(),就像示例中一样。

注意

工作示例

测试 中有一个工作示例。

许可

MIT 许可

作者

请提供署名,这将非常感谢。