You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

19 lines
434 B

  1. //
  2. // Promise+Timeout.swift
  3. // then
  4. //
  5. // Created by Sacha Durand Saint Omer on 10/08/2017.
  6. // Copyright © 2017 s4cha. All rights reserved.
  7. //
  8. import Foundation
  9. extension Promise {
  10. public func timeout(_ time: TimeInterval) -> Promise<T> {
  11. let timer: Promise<T> = Promises.delay(time).then {
  12. return Promise<T>.reject(PromiseError.timeout)
  13. }
  14. return Promises.race(timer, self)
  15. }
  16. }