Javascript: цикл 2 асинхронизированных функций - PullRequest
0 голосов
/ 30 января 2020

У меня есть 2 асинхронизированные функции, которые должны чередоваться взад и вперед, пока переменная (активированная внутри функции) не вызовет их для остановки. Я пробовал циклы while, но с задержкой внутри функции playerTurn l oop работает вечно и переполняет программу.

var loopStatus = 1
playerTurn(author, "R", async function() {
  playerTurn(opponent, idTurn, async function() {
    playerTurn(author, "R", async function() {
      ...
    })
  })
})

1 Ответ

0 голосов
/ 30 января 2020

Почему бы вам не использовать Promise.race, это полезно в таких случаях.

Пример

const first = new Promise(function(resolve, reject) {
    setTimeout(resolve, 500, 'one');
});

const second = new Promise(function(resolve, reject) {
    setTimeout(resolve, 100, 'two');
});

Promise.race([first, second]).then(function(value) {
  console.log(value);
  // Both resolve, but second is faster
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...