json-joy
Version:
Collection of libraries for building collaborative editing apps.
21 lines (20 loc) • 407 B
JavaScript
/**
* An externally resolvable/rejectable "promise". Use it to resolve/reject
* promise at any time.
*
* ```ts
* const future = new Defer();
*
* future.promise.then(value => console.log(value));
*
* future.resolve(123);
* ```
*/
export class Defer {
resolve;
reject;
promise = new Promise((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
});
}