I have a Chrome extension that saves some settings in the local storage. My script worked fine before I switched the loading function to async as described in Chrome reference. After switching, my global settings variable became undefined in a button clickHandler.
var settings = {
sliderValue: 0,
modeSelectValue: 0,
enabled: false
};
async function restoreOptions() {
settings = await chrome.storage.local.get("settings").then(() => {
console.log("Loaded: " + JSON.stringify(settings));
});
}
document.addEventListener("DOMContentLoaded", () => {
//...
restoreOptions();
console.log("Setting Form");
enabled.checked = Boolean(settings.enabled);
modeSelect.selectedIndex = settings.modeSelectValue;
slider.value = settings.sliderValue;
button.addEventListener("click", (e) => {
console.log(settings); // Undefined
});
});
How can I access "settings" in the ClickHandler?