Я создаю диалоговое окно в слое HTML в Javascript. Когда я звоню, я хочу, чтобы он вел себя так же, как при вызове встроенного окна оповещения. Он должен выдавать поток GUI при вызове, а затем возобновлять выполнение со следующей строки кода, когда он закрыт. С точки зрения вызывающего, он действует так, как будто он блокирует поток GUI. Это возможно в Javascript?
В основной функции, приведенной ниже, я хочу, чтобы состояние выполнения функции сохранялось прямо при вызове showDialog. Затем отображается диалоговое окно, которое получает события щелчка и т. Д. c, и когда оно, наконец, закрывается, я хочу, чтобы возвращаемое значение было возвращено в переменную результата, и выполнение возобновляется в основной функции. Возможно ли это как-то? Я не собираюсь фактически блокировать поток GUI, потому что тогда диалог не будет работать.
function main()
{
// Show the dialog to warn
let result = showDialog("Warning", "Do you want to continue?", ["OK", "Cancel"]);
// Do some stuff.
if (result === "OK") performAction();
}
// This function shows a custom modal dialog (HTML layer), and should only return the GUI
// thread when the user has clicked one of the buttons.
function showDialog(title, text, buttons)
{
// Code here to draw the dialog and catch button events.
}