| 1234567891011121314 |
- export function withTimeout<T>(promise: Promise<T>, ms: number): Promise<T> {
- let timeout: NodeJS.Timeout
- return Promise.race([
- promise.then((result) => {
- clearTimeout(timeout)
- return result
- }),
- new Promise<never>((_, reject) => {
- timeout = setTimeout(() => {
- reject(new Error(`Operation timed out after ${ms}ms`))
- }, ms)
- }),
- ])
- }
|