Javascript 电报节点。Js处理多个更新

Javascript 电报节点。Js处理多个更新,javascript,node.js,telegram,telegram-bot,Javascript,Node.js,Telegram,Telegram Bot,我正在创建一个关于telegram的游戏,目前我有一个关于同时使用多个更新的问题。我正在使用node.js 例如,我有这个代码 var TelegramBot = require('node-telegram-bot-api'), bot = new TelegramBot("MY_TOKEN", {polling: true}); bot.onText(/^\/createroom/, function (res, match) { //Here i have some log

我正在创建一个关于telegram的游戏,目前我有一个关于同时使用多个更新的问题。我正在使用node.js

例如,我有这个代码

var TelegramBot = require('node-telegram-bot-api'),    
  bot = new TelegramBot("MY_TOKEN", {polling: true});

bot.onText(/^\/createroom/, function (res, match) {

//Here i have some logic, to check whether if the room already created or not
service.checkIfRoomExist(res) // this service here, will always return false, because of the simultaneously chat
.then (function(isExist) {
 if (isExist === false) {
  service.createRoom(res)
  .then (function() {

  });
 }
});



//it works fine, if player type "/createroom" not simultaneously

//but if more than 1 player type "/createroom" simultaneously, my logic here doesn't work, it will create multiple room

}
有没有解决这个问题的想法


非常感谢,如有任何帮助,我们将不胜感激。

您需要将独特的聊天室/用户ID链接到您的数据库,以防止此类冲突。请参阅下面的代码和有关如何操作的注释

var-TelegramBot=require('node-telegram-bot-api'),
bot=新电报bot(“我的令牌”{
投票:对
});
bot.onText(/^\/createroom/,函数(res,match){
//组使用res.chat.id,个人使用res.user.id
service.checkIfRoomExist(res.chat.id)。然后(function(isExist){
if(isExist==false){
service.createRoom(res.chat.id).then(function(){
bot.sendMessage(res.chat.id,“初始化游戏!”)
//在此处发送游戏内容
});
}
bot.sendMessage(res.chat.id,“此组中已启动游戏!”)
})
});
函数checkIfRoomExist(id){
//你们的逻辑在这里检查数据库,若游戏已经创建

}
那么,您编写了一些工作不正常的代码?为什么不显示它?@Tomalak,看看我上面编辑的代码,谢谢你需要删除“存在”复选框。编写一个创建房间(或失败)的函数并调用它。函数应该在成功或抛出错误时返回房间对象。这样,第一个传入请求成功,第二个请求失败。@Tomalak,对不起,我还是不明白。你的意思是,只需使用createRoom函数,对吗?它总是会带来成功,对吗?我仍然不知道,如何一些同时聊天将失败createRoom功能。抱歉,只是仍然不明白为什么“createRoom”函数总是返回成功?这根本没有道理。要么它可以创建一个房间,要么它不能。