UNPKG

@segment/analytics-generic-utils

Version:

This monorepo's version of "lodash". This package contains shared generic utilities that can be used within the ecosystem. This package should not have dependencies, and should not contain any references to the Analytics domain.

26 lines (24 loc) 519 B
/** * Return a promise that can be externally resolved */ export const createDeferred = <T>() => { let resolve!: (value: T | PromiseLike<T>) => void let reject!: (reason: any) => void let settled = false const promise = new Promise<T>((_resolve, _reject) => { resolve = (...args) => { settled = true _resolve(...args) } reject = (...args) => { settled = true _reject(...args) } }) return { resolve, reject, promise, isSettled: () => settled, } }