GroupWork 0.0.6

GroupWork 0.0.6

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布日期上次发布日期2017年12月
SwiftSwift 版本4.0
SPM支持 SPM

Quan VoWilson Ding维护。



GroupWork 0.0.6

  • 作者:
  • Quan Vo和Wilson Ding

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 包管理器

对于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()调用必须平衡

工作示例

测试中有一个工作示例。

许可证

MIT 标签LICENSE

作者

请提供归属,非常感谢。