Skip to main content

@rtorcato/js-common / promises

promises

Functions

to()

to<T>(promise): Promise<[unknown, T | undefined]>

Defined in: promises/index.ts:19

Wraps a promise and returns a tuple [error, result]. The error slot is unknown — narrow it at the call site before touching its properties.

Example

const [err, value] = await to(Promise.resolve(42))
// err = null, value = 42

const [err2, value2] = await to(Promise.reject(new Error('boom')))
const message = err2 instanceof Error ? err2.message : String(err2)
// message = 'boom', value2 = undefined

Type Parameters

T

T

Parameters

promise

Promise<T>

The promise to wrap.

Returns

Promise<[unknown, T | undefined]>


withTimeout()

withTimeout<T>(promise, ms, error?): Promise<T>

Defined in: promises/index.ts:42

Returns a promise that rejects after a timeout if the input promise does not resolve.

Example

await withTimeout(delay(10).then(() => 'fast'), 100) // 'fast'
await withTimeout(delay(500), 100) // rejects with Error('Timeout')

Type Parameters

T

T

Parameters

promise

Promise<T>

The promise to race.

ms

number

Timeout in milliseconds.

error?

any = ...

Optional error to throw on timeout.

Returns

Promise<T>