Node.js异步功能/允许

时间:2019-11-27 21:49:09

标签: javascript node.js

嗨,我正在尝试创建一个队列系统(类似于cs go,lol等中的获取系统)

基本上要创建一场比赛,我需要两名选手

所以我以1000 mmr的身分加入了玩家

我在排队,所以我需要等待队列中有两个玩家,其玩家人数在800至1200 mmr之间

如果我没有将此玩家排队,我必须一直待在队列中,直到玩家2进入队列

我的主:

const players = [
  { id: 1, name: 'spt', mmr: 970 },
  { id: 2, name: 'test2', mmr: 1000 },
  { id: 3, name: 'test3', mmr: 1050 },
  { id: 4, name: 'test4', mmr: 70 }
]

queue.addPlayers(players);

const makeMatch =  queue.makeMatachx(4);

  makeMatachx(id){
    const firstPLayer = this.players.find(p => p.id == id)
    const { mmr } = firstPLayer
    const secondPlayer = this.players.find((playerTwo) => playerTwo.mmr < (5 / 100) * mmr + mmr && playerTwo.mmr > mmr - ((5 / 100) * mmr) && playerTwo.id != playerDetails.id);

  }

我有点迷茫,我想只是用Promise解决了这个问题,但我不知道如何

2 个答案:

答案 0 :(得分:0)

您必须使用诺言吗?如果不是,则将功能设置为 getFirstPlayer getSecondPlayer 。然后在 getFirstPlayer 的回调中调用 getSecondPlayer

因为您的代码中没有承诺。

答案 1 :(得分:0)

您可以使用Async系列来完成工作,请检查 here