いつのまにかブラウザでもsleep、wait的なことが綺麗にかけるようになっていた

async、await がfirefoxで普通に使えた。
firefox52からサポートされてたらしい。

const sleep = (w) => new Promise(resolve => setTimeout(resolve, w))
(async () => {
  await sleep(1000);
  console.log("step1");
  await sleep(1000);
  console.log("step2");
  await sleep(1000);
  console.log("step3");
  await sleep(1000);
  console.log("end");
})();