Invoked in a microtask on the first get() after construction or invalidation. Synchronous throws and rejected thenables become get() rejections.
Optional synchronous predicate, evaluated once per successful attempt. False delivers the value without retaining it. A throw or nonboolean result rejects the attempt and allows retry. Defaults to retaining all fulfilled results.
Share one asynchronous initialization and retain accepted results, including undefined. Rejections are never retained. clear() invalidates the current attempt without cancelling it; existing callers still receive its result. An old attempt cannot replace or clear a newer one. Do not await this instance's get() inside its factory or retention predicate.