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