ソース

const button = document.querySelector("button");
const div = document.querySelector("div");

const setText = text => {
 div.textContent = text;
};

const checkAuth = () => {
 return new Promise((resolve, reject) => {
  setText('認証を確認しています...');
  setTimeout(() => {
   resolve(true);
  }, 2000);
 });
};

const fetchUser = () => {  return new Promise((resolve, reject) => {
  setText('ユーザーを取得しています...');
  setTimeout(() => {
   resolve({ name: "マックス" });
  }, 2000);
 });
};

button.addEventListener("click", async () => {
 const isAuth = await checkAuth();
 let user = null;
 if (isAuth) {
  user = await fetchUser();
 }
 setText(user.name);
});