FWPromise

@objcMembers
public class FWPromise : NSObject

框架约定类

Config

  • 约定回调队列,默认main队列

    Declaration

    Swift

    public static var completionQueue: DispatchQueue
  • 约定默认错误,约定失败时可选使用,可用于错误判断,支持自定义

    Declaration

    Swift

    public static var defaultError: Error
  • 约定验证错误,验证失败时默认使用,可用于错误判断,支持自定义

    Declaration

    Swift

    public static var validationError: Error
  • 约定超时错误,约定超时时默认使用,可用于错误判断,支持自定义

    Declaration

    Swift

    public static var timeoutError: Error

Public

  • 指定操作完成句柄初始化

    Declaration

    Swift

    public init(completion: @escaping (_ completion: @escaping (_ result: Any?) -> Void) -> Void)
  • 指定操作成功和失败句柄初始化

    Declaration

    Swift

    public convenience init(block: @escaping (_ resolve: @escaping (_ value: Any?) -> Void, _ reject: @escaping (_ error: Error) -> Void) -> Void)
  • 指定操作成功、失败句柄和进度句柄初始化

    Declaration

    Swift

    public convenience init(progress: @escaping (_ resolve: @escaping (_ value: Any?) -> Void, _ reject: @escaping (_ error: Error) -> Void, _ progress: @escaping (_ value: Double) -> Void) -> Void)
  • 快速创建成功实例

    Declaration

    Swift

    public convenience init(value: Any?)
  • 快速创建失败实例

    Declaration

    Swift

    public convenience init(error: Error)
  • 执行约定并回调完成句柄

    Declaration

    Swift

    public func done(_ completion: @escaping (_ result: Any?) -> Void)
  • 执行约定并分别回调成功、失败句柄,统一回调收尾句柄

    Declaration

    Swift

    public func done(_ done: @escaping (_ value: Any?) -> Void, catch: ((_ error: Error) -> Void)?, finally: (() -> Void)? = nil)
  • 执行约定并分别回调成功、失败句柄、进度句柄,统一回调收尾句柄

    Declaration

    Swift

    public func done(_ done: @escaping (_ value: Any?) -> Void, catch: ((_ error: Error) -> Void)?, progress: ((_ value: Double) -> Void)?, finally: (() -> Void)? = nil)
  • 执行当前约定,成功时调用句柄处理结果或者返回下一个约定

    Declaration

    Swift

    public func then(_ block: @escaping (_ value: Any?) -> Any?) -> FWPromise
  • 执行当前约定,失败时调用句柄恢复结果或者返回下一个约定

    Declaration

    Swift

    public func recover(_ block: @escaping (_ error: Error) -> Any?) -> FWPromise
  • 验证约定,当前约定成功时验证结果,可返回Bool或Error?;验证通过时返回结果,验证失败时返回验证错误

    Declaration

    Swift

    public func validate(_ block: @escaping (_ value: Any?) -> Any?) -> FWPromise
  • 减少约定,当前约定结果作为初始值value,顺序使用value和数组值item调用reducer,产生新的value继续循环直至结束,类似数组reduce方法

    Declaration

    Swift

    public func reduce(_ items: [Any], reducer: @escaping (_ value: Any?, _ item: Any) -> Any?) -> FWPromise
  • 约定延时,当前约定成功时延时返回结果;默认失败时不延时,可设置force强制失败时也延时

    Declaration

    Swift

    public func delay(_ time: TimeInterval, force: Bool = false) -> FWPromise
  • 约定超时,当前约定未超时时返回结果;否则返回超时错误信息

    Declaration

    Swift

    public func timeout(_ time: TimeInterval, error: Error? = nil) -> FWPromise
  • 约定重试,block需返回新创建的约定,当前约定失败时延迟指定时间后调用block创建约定并执行,直至成功或达到最大重试次数

    Declaration

    Swift

    public func retry(_ times: Int = 1, delay: TimeInterval = 0, block: @escaping () -> FWPromise) -> FWPromise

Static

  • 仿协程异步执行方法

    Declaration

    Swift

    @discardableResult
    public static func async(_ block: @escaping () throws -> Any?) -> FWPromise
  • 仿协程同步返回结果

    Declaration

    Swift

    @discardableResult
    public static func await(_ promise: FWPromise) throws -> Any?
  • 全部约定,所有约定成功才返回约定结果合集;如果某一个失败了,则返回该错误信息;约定进度为所有约定总进度

    Declaration

    Swift

    public static func all(_ promises: [FWPromise]) -> FWPromise
  • 某个约定,返回最先成功的约定结果;如果都失败了,返回最后一个错误信息;约定进度为最先成功的约定进度

    Declaration

    Swift

    public static func any(_ promises: [FWPromise]) -> FWPromise
  • 约定竞速,返回最先结束的约定结果,不管成功或失败;约定进度为最先结束的约定进度

    Declaration

    Swift

    public static func race(_ promises: [FWPromise]) -> FWPromise
  • 延时约定,延时完成时必定成功

    Declaration

    Swift

    public static func delay(_ time: TimeInterval) -> FWPromise
  • 约定重试,block需返回新创建的约定,该约定失败时延迟指定时间后重新创建并执行,直至成功或达到最大重试次数(总次数retry+1)

    Declaration

    Swift

    public static func retry(_ times: Int = 1, delay: TimeInterval = 0, block: @escaping () -> FWPromise) -> FWPromise