<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Promise</title>
</head>
<body>
<div id="button" style="width:200px; background-color:darkgrey; border: 1px solid black;">Click me!<div>
</body>
<script>
(async () => {
let clicked;
const waitingForYourClick = new Promise(resolve => clicked = resolve);
const button = document.querySelector("#button");
button.addEventListener("click", clicked);
console.log("Waiting");
await waitingForYourClick;
console.log("Done");
button.removeEventListener("click", clicked);
button.innerHTML = "Clicked!";
})();
</script>
</html>