You are currently looking at the v12 docs, which are still a work in progress. If you miss anything, you may find it in the older v11 docs here.
Lazy Value
If you have some expensive computations you'd like to defer and cache subsequently, you can turn them into lazy values:
Note: a lazy value is not a shared data type. Don't rely on its runtime representation in your JavaScript code.
Execute The Lazy Computation
To actually run the lazy value's computation, use Lazy.get
from the standard library Lazy
module:
The first time Lazy.get
is called, the expensive computation happens and the result is cached. The second time, the cached value is directly used.
You can't re-trigger the computation after the first get
call. Make sure you only use a lazy value with computations whose results don't change (e.g. an expensive server request whose response is always the same).
Exception Handling
For completeness' sake, our files read example might raise an exception because of readdirSync
. Here's how you'd handle it:
Though you should probably handle the exception inside the lazy computation itself.