このツイートより勉強させていただいた。
https://twitter.com/clockmaker/status/1432490550825930752

(async () => {
  const obj = {
    then(r) {
      setTimeout(() => { r(1); }, 1000);
    },
  };

  const a = await obj;
  console.log(a); // 1秒以後に「1」と出力される
})();

このようにPromiseがないにもかかわらず、awaitが動作する理由としては、JSの任意のオブジェクトにthen()メソッドがある場合、Thenableオブジェクトという扱いになり、awaitを使用できるためである。

jQueryの $.get も Thenable らしいので、awaitで待つことができるよう。

(async () => {
  // await方式
  const data = await $.get('hoge.json');
  console.log(data);
})();