chrome Storageでセットした値をすぐに取得する


非同期処理の理由で、セットする前に取得されて反映しない。

これを解決。


var str = "ふあまいはりふ";


const getAndSetInSync = async _ => {
    // storage.getおよびsetを同期的に処理するためPromiseでラップする
    return new Promise(resolve => {

        chrome.storage.local.set({ 'uhash': str }, function() {

            resolve();
        });


    })
}

(async _ => {
    // 関数を同期呼び出しする
    await getAndSetInSync();

})()

chrome.storage.local.get(['uhash'], function(value) {
    console.log(value.uhash);
});

参考

https://blog.atori.xyz/posts/chrome-storage-synchronous/