localStorage
は同期APIです。あなたは彼らに、非同期動作を与え、Promise
対象とsetItem
メソッドの実行を延期することができます:
const asyncLocalStorage = {
setItem: function (key, value) {
return Promise.resolve().then(function() {
localStorage.setItem(key, value);
});
},
getItem: function (key) {
return Promise.resolve().then(function() {
return localStorage.getItem(key);
});
}
};
// Demo
const data = Date.now() % 1000;
asyncLocalStorage.setItem('mykey', data).then(function() {
return asyncLocalStorage.getItem('mykey');
}).then(function (value) {
console.log('Value has been set to:', value);
});
console.log('waiting for value to become ' + data +
'. Current value: ', localStorage.getItem('mykey'));
SOスニペットはlocalStorage
の使用を許可していないとして、それは、repl.it上で実行を参照してください。
'setTimeout'にコードを入れよう – Satpal
すべてのlocalStorage呼び出しは、[here](http://stackoverflow.com/questions/20231163/is-html5-localstorage-asynchronous)で説明されているように同期しています。 – Mantas