startAutoSave
The save
method takes data from the Store
with which the Persister
is associated and persists it into storage, once, and then continuously.
startAutoSave(): Promise<WsSynchronizer<WebSocketType>>
returns | Promise<WsSynchronizer<WebSocketType>> | A Promise containing a reference to the |
---|
This method first runs a single call to the save
method to ensure the data is in sync with the persisted storage. It then continues to watch for changes to the Store
, automatically saving the data to storage.
This method is asynchronous because it starts by making a single call to the asynchronous save
method. Even for those storage types that are synchronous (like browser storage) it is still recommended that you await
calls to this method or handle the return type natively as a Promise.
Example
This example creates a Store
with some data, and saves into the browser's session storage. Subsequent changes to the Store
are then automatically saved to the underlying storage.
import {createSessionPersister} from 'tinybase/persisters/persister-browser';
import {createStore} from 'tinybase';
const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
const persister = createSessionPersister(store, 'pets');
await persister.startAutoSave();
console.log(sessionStorage.getItem('pets'));
// -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
store.setTables({pets: {toto: {species: 'dog'}}});
// ...
console.log(sessionStorage.getItem('pets'));
// -> '[{"pets":{"toto":{"species":"dog"}}},{}]'
sessionStorage.clear();
Since
v1.0.0