# E0162: 'await' is only allowed in async functions

The `await` operator can be used in `async` functions and in modules at the top level. It is a syntax error to use the `await` operator in a non-`async` function:

    function readConfig(configFilePath) {
      let data = await fs.promises.readFile(
        configFilePath,
        "utf-8",
      );
      return parseConfig(data);
    }

    async function takeOverTheWorld() {
      let config = readConfig(CONFIG_FILE);
      if (config.prettyPlease) {
        await reallyTakeOverTheWorld();
      }
    }

To fix this error, declare the function as `async`, ensuring that callers use `await` too:

    async function readConfig(configFilePath) {
      let data = await fs.promises.readFile(
        configFilePath,
        "utf-8",
      );
      return parseConfig(data);
    }

    async function takeOverTheWorld() {
      let config = await readConfig(CONFIG_FILE);
      if (config.prettyPlease) {
        await reallyTakeOverTheWorld();
      }
    }

Introduced in quick-lint-js version 0.3.0.

Documentation for other errors