У меня есть следующий код:
$(document).ready(function(){
var status = $('#loading-banner h1');
if(!status) return false;
setTimeout(function(){
status.html('Авторизация в системе...');
}, 5000);
setTimeout(function(){
status.html('Получение информации...');
}, 5000);
setTimeout(function(){
$('#loading-banner').fadeOut(1000);
}, 5000);
});
Если его выполнить, спустя 5 секунд сработает fadeOut(), соответственно функции, передаваемые setTimeout, срабатывают асинхронно. Если ли способ сделать так, чтобы эти функции выполнялись последовательно (то есть fadeOut() должна сработать спустя 15 секунд с момента загрузки документа) без использования множества вложенных функций, дабы не засорять стек? Так же не рассматриваю вариант поставить во втором таймауте 10000, а в третьем 15000, так как считаю это какими-то "костылями".
Пример используя promise
:
$(document).ready(function(){
var status = $('#loading-banner h1');
if(!status) return false;
function f1() {
return new Promise(function(resolve){
setTimeout(function() {
status.html('Авторизация в системе...');
resolve();
}, 5000);
});
}
function f2() {
return new Promise(function(resolve){
setTimeout(function() {
status.html('Получение информации...');
resolve();
}, 5000);
});
}
function f3() {
return new Promise(function(resolve){
setTimeout(function() {
$('#loading-banner').fadeOut(1000);
resolve();
}, 5000);
});
}
f1().then(function() {
return f2();
}).then(function() {
return f3();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="loading-banner">
<h1>Статус ок</h1>
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Возникла проблема так как я не верно что то делаюЯ хочу обернуть каждое изображение в div с любым именем class
Использую библиотеку 2vue-google-maps для VueВ infoWindow есть кнопка с @click, проблема в том что она рендерится как обычный HTML тег и собственно не работает
Делаю проект просто с целью обучения, там создал класс CommentService, в котором содержатся методы для работы с БД (с целью сократить код в будущем):