Skip to content

Class: PromisEBase<T>

Defined in: packages/promise/src/PromisEBase.ts:10

Preserved reference to original Promise class and used it internally.

This is needed to avoid unexpected errors, in case, globalThis.Promise is replaced with PromisE.

Extends

Extended by

Type Parameters

T

T = unknown

Implements

Constructors

Constructor

new PromisEBase<T>(...args): PromisEBase<T>

Defined in: packages/promise/src/PromisEBase.ts:25

Create a PromisE instance as a drop-in replacement for Promise

Parameters

args

...[(resolve, reject) => void]

Returns

PromisEBase<T>

Overrides

Promise<T>.constructor

Constructor

new PromisEBase<T>(promise): PromisEBase<T>

Defined in: packages/promise/src/PromisEBase.ts:27

Extend an existing Promise instance to check status or finalize early

Parameters

promise

Promise<T>

Returns

PromisEBase<T>

Overrides

Promise<T>.constructor

Constructor

new PromisEBase<T>(value): PromisEBase<T>

Defined in: packages/promise/src/PromisEBase.ts:29

Create a resolved promise with value

Parameters

value

T

Returns

PromisEBase<T>

Overrides

Promise<T>.constructor

Constructor

new PromisEBase<T>(value): PromisEBase<T>

Defined in: packages/promise/src/PromisEBase.ts:31

Create a promise to be resolved externally using .resolve() and .reject() methods

Parameters

value

undefined

Returns

PromisEBase<T>

Overrides

Promise<T>.constructor

Constructor

new PromisEBase<T>(): PromisEBase<T>

Defined in: packages/promise/src/PromisEBase.ts:47

If executor function is not provided, the promise must be resolved/rejected externally.

Returns

PromisEBase<T>

Example

An alternative to "Promise.withResolvers()"

javascript
import PromisE from '@superutils/promise'

// create a promise that will NEVER finalize automatically
const p = new PromisE()
// resolve it manually
setTimeout(() => p.resolve(1), 1000)
p.then(console.log)

Overrides

Promise<T>.constructor

Properties

[toStringTag]

readonly [toStringTag]: string

Defined in: node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts:176

Implementation of

IPromisE.[toStringTag]

Inherited from

PromisE.[toStringTag]


onEarlyFinalize

onEarlyFinalize: OnEarlyFinalize<T>[]

Defined in: packages/promise/src/PromisEBase.ts:19

Callbacks to be invoked whenever promise is finalized externally using resolve()/reject() methods

Implementation of

IPromisE.onEarlyFinalize


onFinalize

onFinalize: OnFinalize<T>[]

Defined in: packages/promise/src/PromisEBase.ts:22

Callback to be invoked after promise is resolved or rejected

Implementation of

IPromisE.onFinalize


[species]

readonly static [species]: PromiseConstructor

Defined in: node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts:180

Inherited from

Promise.[species]

Accessors

pending

Get Signature

get pending(): boolean

Defined in: packages/promise/src/PromisEBase.ts:98

Indicates if the promise is still pending/unfinalized

Returns

boolean

Indicates if the promise is still pending/unfinalized

Implementation of

IPromisE.pending


rejected

Get Signature

get rejected(): boolean

Defined in: packages/promise/src/PromisEBase.ts:103

Indicates if the promise has been rejected

Returns

boolean

Indicates if the promise has been rejected

Implementation of

IPromisE.rejected


resolved

Get Signature

get resolved(): boolean

Defined in: packages/promise/src/PromisEBase.ts:108

Indicates if the promise has been resolved

Returns

boolean

Indicates if the promise has been resolved

Implementation of

IPromisE.resolved


state

Get Signature

get state(): 0 | 1 | 2

Defined in: packages/promise/src/PromisEBase.ts:119

Get promise status code:

  • 0 = pending
  • 1 = resolved
  • 2 = rejected
Returns

0 | 1 | 2

0: pending, 1: resolved, 2: rejected

Implementation of

IPromisE.state

Methods

catch()

catch<TResult>(onrejected?): Promise<T | TResult>

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1564

Attaches a callback for only the rejection of the Promise.

Type Parameters

TResult

TResult = never

Parameters

onrejected?

((reason) => TResult | PromiseLike<TResult>) | null

The callback to execute when the Promise is rejected.

Returns

Promise<T | TResult>

A Promise for the completion of the callback.

Implementation of

IPromisE.catch

Inherited from

Promise.catch


finally()

finally(onfinally?): Promise<T>

Defined in: node_modules/typescript/lib/lib.es2018.promise.d.ts:29

Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The resolved value cannot be modified from the callback.

Parameters

onfinally?

(() => void) | null

The callback to execute when the Promise is settled (fulfilled or rejected).

Returns

Promise<T>

A Promise for the completion of the callback.

Implementation of

IPromisE.finally

Inherited from

Promise.finally


reject()

reject(reason): void

Defined in: packages/promise/src/PromisEBase.ts:140

Reject pending promise early.

Parameters

reason

unknown

Returns

void

Implementation of

IPromisE.reject


resolve()

resolve(value): void

Defined in: packages/promise/src/PromisEBase.ts:130

Resovle pending promise early.

Parameters

value

T | PromiseLike<T>

Returns

void

Implementation of

IPromisE.resolve


then()

then<TResult1, TResult2>(onfulfilled?, onrejected?): Promise<TResult1 | TResult2>

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1557

Attaches callbacks for the resolution and/or rejection of the Promise.

Type Parameters

TResult1

TResult1 = T

TResult2

TResult2 = never

Parameters

onfulfilled?

((value) => TResult1 | PromiseLike<TResult1>) | null

The callback to execute when the Promise is resolved.

onrejected?

((reason) => TResult2 | PromiseLike<TResult2>) | null

The callback to execute when the Promise is rejected.

Returns

Promise<TResult1 | TResult2>

A Promise for the completion of which ever callback is executed.

Implementation of

IPromisE.then

Inherited from

Promise.then


all()

static all<T>(values): IPromisE<{ -readonly [P in string | number | symbol]: Awaited<T[P]> }>

Defined in: packages/promise/src/PromisEBase.ts:156

Sugar for new PromisE(Promise.all(...))

Type Parameters

T

T extends unknown[]

Parameters

values

T

Returns

IPromisE<{ -readonly [P in string | number | symbol]: Awaited<T[P]> }>

Overrides

Promise.all


allSettled()

static allSettled<T>(values): IPromisE<PromiseSettledResult<Awaited<T[number]>>[]>

Defined in: packages/promise/src/PromisEBase.ts:162

Sugar for new PromisE(Promise.allSettled(...))

Type Parameters

T

T extends unknown[]

Parameters

values

T

Returns

IPromisE<PromiseSettledResult<Awaited<T[number]>>[]>

Overrides

Promise.allSettled


any()

static any<T>(values): IPromisE<Awaited<T[number]>>

Defined in: packages/promise/src/PromisEBase.ts:168

Sugar for new PromisE(Promise.any(...))

Type Parameters

T

T extends unknown[]

Parameters

values

T

Returns

IPromisE<Awaited<T[number]>>

Overrides

Promise.any


race()

static race<T>(values): IPromisE<Awaited<T[number]>>

Defined in: packages/promise/src/PromisEBase.ts:172

Sugar for new PromisE(Promise.race(..))

Type Parameters

T

T extends unknown[]

Parameters

values

T

Returns

IPromisE<Awaited<T[number]>>

Overrides

Promise.race


reject()

static reject<T>(reason): PromisEBase<T>

Defined in: packages/promise/src/PromisEBase.ts:176

Extends Promise.reject

Type Parameters

T

T = never

Parameters

reason

unknown

Returns

PromisEBase<T>

Overrides

Promise.reject


resolve()

static resolve<T>(value?): IPromisE<T>

Defined in: packages/promise/src/PromisEBase.ts:185

Sugar for new PromisE(Promise.resolve(...))

Type Parameters

T

T

Parameters

value?

T | PromiseLike<T>

Returns

IPromisE<T>

Overrides

Promise.resolve


try()

static try<T, U>(callbackFn, ...args): IPromisE<Awaited<T>>

Defined in: packages/promise/src/PromisEBase.ts:189

Sugar for new PromisE(Promise.try(...))

Type Parameters

T

T

U

U extends unknown[] = []

Parameters

callbackFn

(...args) => T | PromiseLike<T>

args

...U

Returns

IPromisE<Awaited<T>>

Overrides

Promise.try


withResolvers()

static withResolvers<T>(): object

Defined in: packages/promise/src/PromisEBase.ts:228

Creates a PromisE instance and returns it in an object, along with its resolve and reject functions.

NB: this function is technically no longer needed because the PromisE class already comes with the resolvers.


Type Parameters

T

T = unknown

Returns

object

promise

promise: IPromisE<T>

reject

reject: (reason) => void = promise.reject

Parameters
reason

unknown

Returns

void

resolve

resolve: (value) => void = promise.resolve

Parameters
value

T | PromiseLike<T>

Returns

void

Examples

Using PromisE directly: simply provide an empty function as the executor

typescript
import PromisE from '@superutils/promise'
const promisE = new PromisE<number>(() => {})
setTimeout(() => promisE.resolve(1), 1000)
promisE.then(console.log)

Using withResolvers

typescript
import PromisE from '@superutils/promise'
const pwr = PromisE.withResolvers<number>()
setTimeout(() => pwr.resolve(1), 1000)
pwr.promise.then(console.log)

Overrides

Promise.withResolvers