Promises.all () действует странно в Edge и Safari - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь вызвать несколько функций, каждая из которых возвращает обещание при нажатии кнопки. Когда все это будет выполнено, что-то должно произойти (в данном случае просто location.reload()).

Мой код отлично работает в Chrome, однако в Safari и MS Edge он добавит все функции в promises массив, а затем перезагрузите, прежде чем они будут выполнены.

Это мой код

  button.addEventListener('click', function() {
    this.classList.add('disabled');
    let promises = [];
    let total_qty = 0;

    for (var variant of registrered_variants) {
      promises.push(
        FunctionThatReturnsAPromise();
      )
      total_qty += variant.qty
    }

    // reload page when all functions ran.
    Promise.all(promises).then(() => location.reload());
  });

1 Ответ

0 голосов
/ 06 мая 2020

Цепочка обещаний действительно работала, как предполагалось. Проблема была в моей FunctionThatReturnsAPromise() функции ..

...