Проблемы с синхронизацией $.when()
У меня есть функция, которая объявляет переменную, использует $.when для выполнения трех запросов ajax, изменяет переменную внутри метода.done() и возвращает значение:
someFunction = function(){
var myVar;
$.when(ajax1(), ajax2(), ajax3()).done(function(){
myvar = "something";
});
return myVar;
}
Однако из-за его асинхронного характера оператор return выполняется первым и возвращает undefined
, Я подтвердил это, добавив что-то перед оператором return (для целей отладки):
setTimeout(function(){
console.log(myVar);
}, 2000);
После ожидания 2 секунд (достаточно долго для завершения всех запросов и обратных вызовов) он вернул правильное значение.
Итак, как я должен написать это правильно, чтобы сделать его синхронизировать?