AsyncTimeoutOperationQueue 0.5

AsyncTimeoutOperationQueue 0.5

Maintained by severehed.



  • By
  • severehed

AsyncTimeoutOperationQueue

CI Status Version License Platform Beerpay

Usage

Use as extension to regular queue

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
      }

If you want to set default timeout for all operations in this queue, simply create 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
      }

Also you can create AsyncBlockOperation itself or inherit it

import AsyncTimeoutOperationQueue

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

Requirements

Xcode 9+, swift 4.0, No other special requirements 🍺

Installation

AsyncTimeoutOperationQueue is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'AsyncTimeoutOperationQueue'

Author

severehed

License

AsyncTimeoutOperationQueue is available under the MIT license. See the LICENSE file for more info.