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?
