// Setup lazy variable
const { lazy } = require("lazy-var");
async function heavyMethod() {
return await new Promise((res,rej) => {
setTimeout(() => res({ value: "foobar" }),1000);
});
}
var lazyData = lazy(async () => {
console.log("Request for data");
return await heavyMethod()
});
// Later on: Retrieve the data
var data = await lazyData.get();
// outputs: "Request for data"
// returns: whatever data from heavyMethod
console.log("Got data: "+JSON.stringify(data));
var data2 = await lazyData.get();
// no output
// returns: same data as data
console.log("Got data (again): "+JSON.stringify(data2));