UNPKG

vim-webgl-component

Version:

A demonstration app built on top of the vim-webgl-viewer

37 lines (36 loc) 1.12 kB
"use strict"; /** * @module vim-ts */ Object.defineProperty(exports, "__esModule", { value: true }); exports.RemoteValue = void 0; /** * Returns a value from cache or queue up existing request or start a new requests */ class RemoteValue { constructor(getter, label) { this._getter = getter; this.label = label ?? ''; } /** * Returns a value from cache or queue up existing request or start a new requests */ get() { if (this._value !== undefined) { // console.log(this.label + ' returning cached value ') return Promise.resolve(this._value); } if (this._request) { // console.log(this.label + ' returning existing request') return this._request; } // console.log(this.label + ' creating new request') this._request = this._getter().then((value) => { this._value = value; this._request = undefined; return this._value; }); return this._request; } } exports.RemoteValue = RemoteValue;