Как сделать синхронное исполнение кода? JS

Возникла проблема следующего вида: есть 2 функции

'''
function first(){
    var char = getChar();

    if(char == "Digit1"){
        //Кусок кода
    }
}
function getChar(){
    var e = function(event){
        if(event.char != "Enter"){
            document.removeEventListener("keydown", e, false);
            return event.char;
        }
    }
    document.addEventListener("keydown", e, false);
}
'''

Необходимо получить значение второй функции и вернуться к исполнению первой (к условию). Возможно ли это сделать на чистом JS или на JQuery или другими способами?


Ответы (1 шт):

Автор решения: HTMLProgrammer
async function first() {
  try{
    var char = await getChar();

    console.log(char);

    if (char == "Digit1") {
      //Кусок кода
    }
  }
  catch(e){
    alert(e);
  }
}

function getChar() {
  return new Promise((resolve, reject) => {
    var e = function(event) {
      if (event.key != "Enter") {
        resolve(event.key);
      } else
        reject('Enter pressed');
    }

    document.addEventListener("keydown", e, {
      once: true,
      capture: false
    });
  });
}

first();
→ Ссылка