Я в последнее время разрабатываю с JS (да, я все еще новичок), и мне было интересно о 2 вещах?
1-я вещь:
я обнаружилчто он не ждет возврата из функции, которую он перемещает непосредственно к следующей инструкции, так что мне было интересно, был ли JS многопоточным?
И после некоторого исследования я обнаружил, что он управляется событиями, что я полностьюне понимаю, если это не многопоточность, то как эти вызываемые события заставляют js работать так, что я имею в виду игнорирование функции и продвижение до тех пор, пока результат не будет вычислен и возвращен?
2nd Thing:
И я слышал о обратных вызовах, которые якобы могут быть использованы для предотвращения запуска кода js до тех пор, пока не будет выполнена определенная функция, поэтому я попробовал это, и это не сработало так хорошо, вот что я сделал:
index.html
<!DOCTYPE html>
<html>
<body>
<script>
var j = "Nothing to show";
function show() {
console.log(j);
}
function dosome(callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
j = xhr.response;
} else
alert(xhr.status + " : " + xhr.statusText);
}
}
xhr.open("GET", "./index.php", true);
xhr.send();
callback();
}
dosome(function(){show();});
</script>
</body>
</html>
index.php
<?php
sleep(2);
echo "new Value";
?>
и вывод всегда одинаковый, он показывает "старое значение", так что я делал не так?
и спасибовы.