Мне нужно сделать функцию, которая будет ждать, пока пользователь нажмёт кнопку, а потом возвращать результат. Я пробовал так:
let state = {"ready": false};
function getValue() {
state.ready = false;
document.getElementById("form").style.display="block";
while(!state.ready) {}
return document.getElementById("val").value;
}
function setReady() {state.ready = true}
<html>
<head>
</head>
<body>
<div id="form" style="display: none;">
<input id="val">
<button onclick="setReady();">OK</button>
</div>
<button onclick="alert(getValue());">Run</button>
</body>
</html>
Но браузер говорит, что страница зависла. Есть другой способ это сделать?