You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
export class Lazy<T> { |
|
#value?: T; |
|
|
|
constructor(private readonly resolver: () => Promise<T>) {} |
|
|
|
async value(): Promise<T> { |
|
if (!this.#value) { |
|
this.#value = await this.resolver(); |
|
} |
|
|
|
return this.#value; |
|
} |
|
} |