mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
491 B
Swift
20 lines
491 B
Swift
3 years ago
|
// 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)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|