thunky
Delay the evaluation of a paramless async function and cache the result (see thunk).
npm install thunky
Example
Let's make a simple function that returns a random number 1 second after it is called for the first time
var thunky =var test =
Lazy evaluation
Thunky makes it easy to implement a lazy evaluation pattern.
var getDb =var {}
The first time getDb
is called it will try do open a connection to the database.
Any subsequent calls will just wait for the first call to complete and then call your callback.
A nice property of this pattern is that it easily allows us to pass any error caused by getDb
to the queryDb
callback.
Error → No caching
If the thunk callback is called with an Error
object as the first argument it will not cache the result
var fails =;
Promise version
A promise version is available as well
var thunkyp =var ready =// same semantics as the callback versionawait
License
MIT