class DeferredPromise { public promise: Promise; public resolve: (val?: T) => void; public reject: (reason?: any) => void; constructor() { const self = this; this.promise = new Promise((resolve, reject) => { self.resolve = resolve; self.reject = reject; }); } } export default DeferredPromise; export { DeferredPromise };