Что на самом деле делает Жасмин и ждет?

Я использую жасминовые прогоны и жду, чтобы проверить асинхронные операции. Все отлично работает но яЯ не совсем уверен, что происходит за кулисами.

В документации по жасмину приведен следующий пример, к которому я добавил три оператора журнала.

describe("Asynchronous specs", function() {
  var value, flag;

  it("should support async execution of test preparation and exepectations", function() {

    runs(function() {
      flag = false;
      value = 0;

      setTimeout(function() {
        flag = true;
      }, 500);
    });

    waitsFor(function() {
      value++;
      if(flag) {
          console.log("A");
      }
      return flag;
    }, "The Value should be incremented", 750);

    console.log("B");

    runs(function() {
      console.log("C");
      expect(value).toBeGreaterThan(0);
    });
  });
});

});

Первыйruns а такжеwaitsFor совершенно ясно для меня.Runs запускает асинхронную операцию иwaitsFor ждет условия.

Однако я не понимаю, почему второйruns не начинается, покаwaitsFor закончен.waitsFor это не блокирующий вызов.

Я предполагаю, чтоwaitsFor неявно блокирует любое следующееruns звоните, пока не закончите. Это так?

Мое доказательство состоит в том, что операторы console.log выводят:

B A C

Но еслиwaitsFor будет действительно заблокировать это должно быть

A B C

Ответы на вопрос(3)

Ваш ответ на вопрос