TGViewer
Javascript Javascript @javascriptv · 16.9K subscribers
Post #1270 3.16K
🖥 Как вернуть значение из события или из функции обратного вызова?

▶️При попытке сделать вот так ничего не получается:
var result = "";

someInput.onchange = function() {
result = someInput.value;
};

$.get("someapi", function (data) {
result = data.foo;
});

some.api.call(42, function (data) {
result = data.bar;
});

someDiv.textContent = result;

Почему-то в someDiv ничего не отображается.


▶️Проблема в том, что в коде нет операции ожидания. Ни подписка на событие, ни AJAX-вызов, ни даже вызов API не ждут поступления данных - а сразу же передают управление дальше. Поэтому строка someDiv.textContent = result; выполняется ДО того, как переменная result получит значение.

Способов сделать это присваивание после получения значения несколько:
— переместить присваивание внутрь
— вынесение присваивания в именованную функцию
— обратные вызовы (callbacks)
— обещания (promises)
— наблюдаемые значения (observables) в Knockout
— наблюдаемые значения (observables) в MobX

📎 Подробнее об этом всём

@javascriptv
  • 🔥 6
  • 👍 5
  • ❤ 3
  • 🥰 1
More from @javascriptv
  1. Oct 3, 2026Импорт локальных изображений vs использование изображений из папки / public в Next.js
  2. Oct 2, 2026Совет по веб-доступности 💡 Лучший способ сделать ваши ссылки, состоящие только из иконок,…
  3. Sep 30, 2026🌐 Человек, который создал первый веб-браузер, сервер и заложил основу современного интерн…
  4. Sep 29, 2026🛠️ Awesome SRE - большая подборка ресурсов для Site Reliability Engineering Репозиторий a…
  5. Sep 26, 2026Card Carousel Этот элемент веб-дизайна реализован с использованием HTML и CSS. Он представ…
  6. Sep 24, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →