session-ios/SessionUtilitiesKit/PromiseKit/Promise+Timeout.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)
}
}
}
}