Проблемы с синхронизацией $.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 секунд (достаточно долго для завершения всех запросов и обратных вызовов) он вернул правильное значение.

Итак, как я должен написать это правильно, чтобы сделать его синхронизировать?

0 ответов

Другие вопросы по тегам