Ожидание завершения работы функции
Ситуация:
Есть две функции. 1-я устанавливает асинхронное соединение и вставляет переданный контент на страницу. 2-я функция ищет в этом контенте блоки с исходными кодами и организует подсветку синтаксиса. Проблема в том, что 2-я функция не ждёт завершения работы первой и пытается найти сырцы в ещё пустом узле. Проблему удаётся решить запуском 2-й функции с некоторой задержкой. На локальном сервере достаточно 50-100 мс. На веб сервере оно наверняка увеличиться. Подскажите как можно убедиться что 1-я функция завершила работу. |
Может соединить эти функции? и пусть подсветка будет в конце функции
|
Скорее всего так и придётся делать. Просто через 1-ю ф-ю я запускаю все свои Ajax запросы, она достаточно большая - придётся очень много всего править. Хотелось бы найти более гуманный способ.
Кстати, может подскажите почему такие противоестественные вещи вообще происходят? Просто параллельная обработка какая-то... |
Или попробуй повесить обе функции на события
|
Для этого асинхронным функциям передается callback, который вызывается после завершения работы функции.
|
JSprog,
спс за идею, попробую, тока события найду подходящие Kolyaj, можно примерчик маленький с callback? я что то я не очень представляю как это выглядит. |
В простейшем случае так
function request(url, params, callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { // Допустим мы уже дождались ответа callback(); }; } |
спс, то что нужно :dance:
|
Часовой пояс GMT +3, время: 03:45. |