javascript (callback) need help

269
02 июля 2017, 16:33

Помогите разобраться где я допустил ошибку или может быть вообще все неправильно написал. Нужно чтобы получилась такая последовательность:

  1. animateOne появляется сразу
  2. animateTwo появляется после animateOne с задержкой 2с
  3. massAnimate2 появляется после massAnimate2 с задержкой 2с
  4. animateFour появлялся после animateThree с задержкой 2c

    var massAnimate1 = function(cb) {
      function animateOne (callback) {
        document.write("First animation" + "</br>");
        return callback;
      }
      function animateTwo() {
        setTimeout(function () {
          document.write("Second animation" + "</br>");
        }, 2000);
      }
      animateOne(animateTwo());
      return cb;
    };
    
    var massAnimate2 = function(val) {
      setTimeout(function(cb){
        function animateThree (callback) {
          document.write("Three animation" + "</br>");
          return callback;
        }
        function animateFour () {
          setTimeout(function () {
            document.write("Four animation"+ "</br>");
          }, 1400);
        }
        animateThree(animateFour());
        return cb;
      }, 2000);
      return val;
    };
    massAnimate1(massAnimate2());
    

Пример: fiddle

Answer 1

massAnimate2 возвращает свой аргумент val. Вызов massAnimate2 в massAnimate1(massAnimate2()); сделан без параметров, так что внутри massAnimate2 значение val - undefined. Таким образом, massAnimate1 вызывается с параметром undefined.

Но это не страшно :), так как внутри massAnimate1 аргумент cb нигде не используется, а только возвращается, а возвращаемое из massAnimate1 значение игнорируется.

Идем дальше...

Ситуация с massAnimate1(massAnimate2()); фрактально повторяется внутри massAnimate1 - animateOne(animateTwo()); (только animateTwo вообще ничего не возвращает).

В общем, весь код какой-то бессмысленный. А по поводу document.write: Пустая страница после document.write

READ ALSO
Как работать с JS-шаблонизаторами?

Как работать с JS-шаблонизаторами?

ПриветВ проекте возникла необходимость использовать JS-шаблонизаторы, но я я понятия не имею, как их использовать даже после изучения документации

283
Lazy load изображений + индексация поисковиками

Lazy load изображений + индексация поисковиками

Есть код, который подгружает изображения на странице после загрузки самой страницы:

401
javascript замена строки

javascript замена строки

здравствуйте, в фукнцию поступает строка, к примеру

239
сброс кэша пользователей (css, js)

сброс кэша пользователей (css, js)

здравствуйте, допустим есть сайт, и 3 подгружаемых css стиля, и 2 js файла со скриптами

282