diff --git a/src/helpers/resolvable.ts b/src/helpers/resolvable.ts index 679703f..d9640ff 100644 --- a/src/helpers/resolvable.ts +++ b/src/helpers/resolvable.ts @@ -13,8 +13,13 @@ class FetchOnce> { constructor(protected fetchMethod?: (...args: U) => Promise) { } + public reset(): void { + this.data = undefined; + this.error = undefined; + this.state = ResolvableState.WAITING; + } + public resolve(...args: U): Promise { - // eslint-disable-next-line promise/avoid-new return new Promise((resolve, reject) => { switch (this.state) { case ResolvableState.WAITING: @@ -76,4 +81,9 @@ export class WaitForSync extends FetchOnce { this.parsePromise((async () => { throw error; })()); } } + + public reset(): void { + super.reset(); + this.state = ResolvableState.PENDING; + } }