Chrome 53以上の環境で、起動オプションに下記のパラメータを追加することによって、async/awaitが使用可能となります。(2016/07/06現在)
--js-flags="--harmony-async-await"
以下、シンプルな実装例。
(async() => {
await setLocalStorage({ aaa: 1, bbb: 2 });
let aaa = await getLocalStorage("aaa");
let bbb = await getLocalStorage("bbb");
let all = await getLocalStorage();
console.log(aaa);// 1
console.log(bbb);// 2
console.log(all);// {aaa: 1, bbb: 2}
})();
function setLocalStorage(obj) {
return new Promise( (resolve) => {
chrome.storage.local.set( obj, () => resolve() );
});
}
function getLocalStorage(key = null) {
return new Promise( (resolve) => {
chrome.storage.local.get(key, (item) => {
key ? resolve(item[key]) : resolve(item);
});
});
}