嗨,我正在尝试创建一个队列系统(类似于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解决了这个问题,但我不知道如何
答案 0 :(得分:0)
您必须使用诺言吗?如果不是,则将功能设置为 getFirstPlayer 和 getSecondPlayer 。然后在 getFirstPlayer 的回调中调用 getSecondPlayer 。
因为您的代码中没有承诺。
答案 1 :(得分:0)
您可以使用Async系列来完成工作,请检查 here