@Kusmich

Как поочередно запустить 3 функции?

Есть json и скрипт смены значений по времени . Есть анимация которя должна сработать до того как сменится значения а следующая после.

Такой алгоритм стоят плашки 4 сек, потом срабатывает анимация AnimateAut() - это уезд плашки. дальше меняется значение на 5 секунде и срабатывает Animatein() - это приезд плашки.

Проблема в том что анимация уезда срабатывает моментально, а не по истечению времени. А от приезжать она должна быстро а приезжает по истечению времени .

Где я допустил ошибку ? Как сделать правильно ?

var time = 1000;
var dfs = 5000
$.getJSON("data.json", function(data) {
        time = 1000;
        x = function() {

            setTimeout(function() {

                $.each(data['date'], function(key, val) {
                    setTimeout(function() {

                        $('body h1').empty().append(val.chef);;
                        $('body h2').empty().append(val.dolznost);;
                        $('.topick').empty().append(val.anotation);

                        AnimateAut();
                        $('.left_block').attr('src', val.url);;
                    }, dfs)
                    Animatein()
                    dfs += 5000;

                });
                x();
            }, time = 900)

        };
        x();
    })


Вот весь код на фидле : https://jsfiddle.net/xo8667oq/
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 2
@bromzh
Drugs-driven development
Promise же. В jquery есть своя реализация промисов, гугли её. Тебе скорее всего нужен when.
Ответ написан
@dixoNich
frontend developer
Как вариант использовать модуль https://github.com/caolan/async
Функцию async.waterfall
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы