У меня есть эта функция, которая ждет, когда асинхронная функция выполнит свою работу, а затем вернется.Обратный вызов асинхронной функции никогда не называется
function synchronous(){
var notYet = true;
setTimeout(function(){
notYet = false;
}, 1000);
while(notYet)
;
return "Done synchronously!";
}
console.log(synchronous());
Здесь функции synchronous
стойла с помощью while
петли неда обратного вызова асинхронной функции (здесь setTimeout
) получить казнен. Но обратный вызов никогда не вызывается (проверяется с использованием alert
внутри обратного вызова), поэтому notYet
останется true
, и цикл функций будет продолжаться вечно. Итак, почему callback не вызван после 1000 мс?
ПРИМЕЧАНИЕ: Мне все равно, как сделать асинхронную функцию синхронной. Мой вопрос в том, почему вызов не вызван?
браузер javascript - это однопоточный язык – Igor