async/await前提のライブラリ(例:Puppeteer)を使っていると、awaitをネストしたくなることがあります。例えば次のような状況です。 const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); class Foo { async getBar() { console.log('getBar()'); return new Promise(resolve => resolve(new Bar())); } } class Bar { async baz() { console.log('baz()'); await sleep(5000); console.log('baz finished'); } } (async () => { const foo = new Foo(); await (a