20 lines
491 B
Swift
20 lines
491 B
Swift
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
|
|
|
|
import PromiseKit
|
|
|
|
public extension Promise {
|
|
|
|
func timeout(seconds: TimeInterval, timeoutError: Error) -> Promise<T> {
|
|
return Promise<T> { seal in
|
|
after(seconds: seconds).done {
|
|
seal.reject(timeoutError)
|
|
}
|
|
self.done { result in
|
|
seal.fulfill(result)
|
|
}.catch { err in
|
|
seal.reject(err)
|
|
}
|
|
}
|
|
}
|
|
}
|