similar to MemoSignal, creates a computed/derived signal, but it only recomputes if:
it is dirty (this.dirty = 1)
AND some signal/observer/caller calls this signal to get its value.
this signal becomes dirty when at least one of its dependencies has fired an update.
after which, it will remain dirty unless some caller requests its value, after which it will become not-dirty again.
this signal also always fires an update when at least one of its dependencies has fired an update.
and it abandons checking for equality all together, since it only recomputes after a get request,
by which it is too late to signal no update in the value (because its observer is already running).
this signal becomes pointless (in terms of efficiency) once a MemoSignal depends on it.
but it is increadibly useful (i.e. lazy) when other LazySignals depend on one another.
similar to
MemoSignal
, creates a computed/derived signal, but it only recomputes if:this.dirty = 1
)this signal becomes dirty when at least one of its dependencies has fired an update.
after which, it will remain dirty unless some caller requests its value, after which it will become not-dirty again.
this signal also always fires an update when at least one of its dependencies has fired an update. and it abandons checking for equality all together, since it only recomputes after a get request, by which it is too late to signal no update in the value (because its observer is already running).
this signal becomes pointless (in terms of efficiency) once a
MemoSignal
depends on it. but it is increadibly useful (i.e. lazy) when otherLazySignal
s depend on one another.