Platform Swift support

CocoaPods Compatible Carthage compatible Swift Package Manager compatible

Twitter

Errands

运行顺序异步任务的快捷简便方式。

构建 Tunsgten 项目的集成测试套件时,产生了对 Errands 的需求。通常,这些测试包含多个顺序操作,其中每个步骤都依赖于前一个步骤的结果。然而,测试用例并非 Errands 唯一的使用场景。

注意:Errands 和 PromisKit 在功能上有相似之处。Errands 更加注重快速创建自定义操作,但功能不如 PromisKit 强大。

用法

运行您的第一个 Errands 序列就像下面这样简单

Errands().first { (done: @escaping DoneClosure<Void>) in
  print("begin")
  done(())
}.then { (_, done: @escaping DoneClosure<Void>) in
  print("step")
  done()
}.finally {
  print("done")
}

Errands 的真正价值在于可以轻松地在各个步骤之间传递信息。以下示例登录用户并加载她的联系人。

Errands().first { (done: @escaping DoneClosure<User>) in
  api.login(credentials) { user
    done(user)
  }
}.then { (loggedInUser, done: @escaping DoneClosure<[Contact]]>) in
  api.loadContacts(loggedInUser) { contacts in
    done(contacts)
  }
}.finally { contacts in
  print("User contacts: \(contacts).")
}

安装

Cocoapods

要使用 Cocoapods 集成 Errands,请在您的 Podfile 中将其指定为依赖项

platform :ios, '8.0'
use_frameworks!

target '<Your Target Name>' do
  pod 'Errands'
end

然后,运行以下命令进行安装

$ pod install

Carthage

要使用 Carthage 集成 Errands,请在您的 Cartfile 中将其指定为依赖项

github "lukewar/Errands" ~> 0.1.0

运行 carthage update 来构建框架,并将构建好的 Errands.framework 拖到您的 Xcode 项目中。

Swift Package Manager

要使用 Swift Package Manager 集成 Errands,请在您的 Package.swift 中将其指定为依赖项

dependencies: [
  .package(url: "https://github.com/lukewar/Errands.git", .upToNextMinor(from: "0.1.0"))
]

贡献

请针对当前开发分支提交 Pull Request。

许可证

The MIT License (MIT)

Copyright (c) 2018 Lukasz Warchol

特此授权,免费授予获得本软件及相关文档文件(“软件”)副本的任何人,不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件的权利,并允许向其提供本软件的人员这样做,但须符合以下条件:

上述版权声明和本许可声明应包含在所有副本或大部分软件中。

本软件按“原样”提供,不含任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有者均不对任何索赔、损害或其他责任负责,无论是在合同、侵权行为或其他方面,由本软件或本软件的使用或其他处理引起的,与之相关的或与之相关的。