AsyncTimeoutOperationQueue 0.5

AsyncTimeoutOperationQueue 0.5

severehed维护。



  • 作者:
  • severehed

AsyncTimeoutOperationQueue

CI Status Version License Platform Beerpay

使用方法

作为常规队列的扩展使用

import AsyncTimeoutOperationQueue

let queue = OperationQueue()

  queue
      .addAsyncOperation { (completion) in
        //some async work here
        //don't forget to call completion when it's done!
        completion?()
      }
      .timeout(5)
      .onTimeout {
          //called only if operation cancelled by timeout
      }
      .onCompletionOrTimeout {
          //called in both cases: timeout or success finish
      }

如果您想为此队列中的所有操作设置默认超时时间,只需创建AsyncTimeoutOperationQueue

import AsyncTimeoutOperationQueue

let queue = AsyncTimeoutOperationQueue()
queue.defaultTimeout = 10

  queue
      .addAsyncOperation { (completion) in
        //some async work here
        //don't forget to call completion when it's done!
        completion?()
      }
      .timeout(5) //you still able to override default timeout
      .onTimeout {
          //called only if operation cancelled by timeout
      }
      .onCompletionOrTimeout {
          //called in both cases: timeout or success finish
      }

您也可以创建AsyncBlockOperation本身或继承它

import AsyncTimeoutOperationQueue

let operation =
            AsyncBlockOperation(block: { (completion) in
                completion?()
            },
            timeout: 30,
            onTimeout: {
                                    
            })

需求

Xcode 9+, Swift 4.0,没有其他特殊要求🍺

安装

AsyncTimeoutOperationQueue可通过CocoaPods获得。要安装,只需将以下行添加到Podfile中

pod 'AsyncTimeoutOperationQueue'

作者:

severehed

许可协议

AsyncTimeoutOperationQueue 在 MIT 许可协议下可用。更多信息请参阅 LICENSE 文件。