Whether writes can land at all.
Whether reads answer from what is stored: always over a synchronous store, once load has settled over an asynchronous one.
Read the namespace from an asynchronous store, once; later calls return
the same promise. Settles at once over a synchronous store. Never
rejects: a store that fails or does not answer within a few seconds is
reported through onError, and the session then runs on memory.
Namespaced JSON storage that never throws: a private window, a full quota or a blocked store all read as "nothing saved" and write as "not kept".
Over a synchronous store every call goes straight through. Over an asynchronous one,
get,setandremovework on a copy of the namespace in memory:loadfills it once, and each change is sent behind it, the changes to one key made within one task coalesced into one write. A write made beforeloadsettles waits for it and wins over the stored value, because it is the newer of the two. A store that can say so (subscribe) keeps the copy current with the writes other tabs land, as a synchronous store's reads always were, untilclose.