@dazejs/framework
Version:
Daze.js - A powerful web framework for Node.js
57 lines (49 loc) • 932 B
text/typescript
/**
* Copyright (c) 2019 Chan Zewail <chanzewail@gmail.com>
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
export class Deferred<T = any> {
/**
* promise
*/
private _promise: Promise<T>;
/**
* resolve func
*/
private _resolve: (value: T | PromiseLike<T>) => void;
/**
* reject func
*/
private _reject: (reason?: any) => void;
/**
* Create Deferred
*/
constructor() {
this._promise = new Promise<T>((resolve, reject) => {
this._resolve = resolve;
this._reject = reject;
});
}
/**
* promise getter
*/
get promise(): Promise<T> {
return this._promise;
}
/**
* resolve promise
* @param value
*/
resolve (value: T | PromiseLike<T>): void {
this._resolve(value);
}
/**
* reject promise
* @param reason
*/
reject (reason?: any): void {
this._reject(reason);
}
}