Skip to content

Class: PromisEBase<T> ​

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

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:31

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:33

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:35

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:37

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:55

Create a new promise to be resolved/rejected externally.

Caution: If not resolved externally using .resolve() or .reject(). it will remain pending indefinitely. ​

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:10

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:13

Callback to be invoked after promise is resolved or rejected

Implementation of ​

IPromisE.onFinalize


reject ​

reject: (reason) => void

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

Early finalize by force rejecting a pending promise

Parameters ​

reason ​

unknown

Returns ​

void

Implementation of ​

IPromisE.reject


resolve ​

resolve: (value) => void

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

Early finalize by force resolving a pending promise

Parameters ​

value ​

T | PromiseLike<T>

Returns ​

void

Implementation of ​

IPromisE.resolve


state ​

readonly state: 0 | 1 | 2 = 0

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

Get promise status code:

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

Implementation of ​

IPromisE.state


[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:124

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:129

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:134

Indicates if the promise has been resolved

Returns ​

boolean

Indicates if the promise has been resolved

Implementation of ​

IPromisE.resolved

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


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): PromisEBase<{ -readonly [P in string | number | symbol]: Awaited<T[P]> }>

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

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

Type Parameters ​

T ​

T extends unknown[]

Parameters ​

values ​

T

Returns ​

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

Overrides ​

Promise.all


allSettled() ​

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

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

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

Type Parameters ​

T ​

T extends unknown[]

Parameters ​

values ​

T

Returns ​

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

Overrides ​

Promise.allSettled


any() ​

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

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

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

Type Parameters ​

T ​

T extends unknown[]

Parameters ​

values ​

T

Returns ​

PromisEBase<Awaited<T[number]>>

Overrides ​

Promise.any


race() ​

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

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

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

Type Parameters ​

T ​

T extends unknown[]

Parameters ​

values ​

T

Returns ​

PromisEBase<Awaited<T[number]>>

Overrides ​

Promise.race


reject() ​

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

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

Extends Promise.reject

Type Parameters ​

T ​

T = never

Parameters ​

reason ​

unknown

Returns ​

PromisEBase<T>

Overrides ​

Promise.reject


resolve() ​

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

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

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

Type Parameters ​

T ​

T

Parameters ​

value? ​

T | PromiseLike<T>

Returns ​

PromisEBase<T>

Overrides ​

Promise.resolve


try() ​

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

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

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

Type Parameters ​

T ​

T

U ​

U extends unknown[] = []

Parameters ​

callbackFn ​

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

args ​

...U

Returns ​

PromisEBase<Awaited<T>>

Overrides ​

Promise.try


withResolvers() ​

static withResolvers<T>(): object

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

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: PromisEBase<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