ネストが深くなりコードが読みづらくなる「コールバック地獄」を解決する主な手段はどれですか。

Promiseやasync/awaitを使用することで、非同期処理をフラットに記述し、コールバック地獄を回避できます。