【问题标题】:Javascript: Looping 2 asynchronized functionsJavascript:循环 2 个异步函数
【发布时间】:2020-01-30 01:10:12
【问题描述】:

我有 2 个异步函数需要来回交替,直到一个变量(在函数内部激活)调用它们停止。我尝试过 while 循环,但由于 playerTurn 函数内部的延迟,循环永远运行并溢出程序。

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

【问题讨论】:

  • 那个代码模式没有意义......为什么所有的回调函数都是async?你在处理那个代码中的承诺吗​​pan>

标签: javascript loops asynchronous


【解决方案1】:

为什么不使用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
});

【讨论】:

    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 2019-07-04
    • 2017-12-16
    相关资源
    最近更新 更多