Есть функция которая получает какие-то данные с сервера. Сервер может ответить почти мгновенно, а может и потупить немного. В случае задержки, что бы пользователь понимал что происходит(ничего не зависло, идет загрузка), появляется гифка загрузки. В то же время, когда ответ приходит быстро, гифка раздражающе появляется на долю секунды и тут же исчезает. По-этому было решено сделать появление гифки отложенным на 1 секунду. Этого времени в большинстве случаев хватает на ответ с сервера:
function showLoadingGif(stat) {
$('#loadingGif').delay(1000).queue(function(next){
if (stat === 0){
$(this).removeClass('hidden');
next();
}
});
}
Перед ajax запросом исполняется эта функция и через секунду проверяет не пришел ли ответ. Если пришел (stat == 1), то гифка загрузки не будет показана.
Но вот незадача, функция принимает не текущее значение stat, а то которое было при исполнении функции. Как передать в queue актуальное значение переменной?