Как сделать Javascript setTimeout возвращает значение в функции

У меня есть функция, которая вызывает некоторые службы и возвращает ответ. Если ответ ЛОЖЬ, он ждет 1 секунду, чтобы снова запросить службу (которая затем, вероятно, возвращает ИСТИНА).

Как я могу сделать так, чтобы однажды вызвать мою функцию checkService () и получить реальное значение? (первая или вторая попытка, определяемая функцией) Я устанавливаю значение RET внутри функции, но функции всегда возвращают первое RET, потому что setTimeout является асинхронным.

Другими словами, мне нужен какой-то трюк "сна" или какое-либо решение (может быть, тоже jQuery).

function checkService() {

  //this may return TRUE or FALSE
  var RET = someServiceResponse(); 

  // here waits 1 second, then ask the service again
  if( RET == true ) {
    return true;
  } else {

    setTimeout(
        function() {
            //it must return the second response of the service
            RET = someServiceResponse();  
        }, 
        1000
    );

    // I want the checkService() return the response after de timeout
    return RET;  
  }
}

function alertResponse() {
    alert( checkService() );
}

Ответы на вопрос(2)

Ваш ответ на вопрос