Javascript 未处理的拒绝错误:ETELEGRAM:400错误请求:消息文本为空

Javascript 未处理的拒绝错误:ETELEGRAM:400错误请求:消息文本为空,javascript,node.js,json,telegram,node-telegram-bot-api,Javascript,Node.js,Json,Telegram,Node Telegram Bot Api,我是电报机器人和节点js的新手,我正在开发一个简单的机器人,它调用api URL来获取json对象,但我在命令中遇到了这个错误。这是命令的代码: bot.onText(/\/fixtures/, (msg) => { const chatId = msg.chat.id; var out = ""; function myFunction(arr) { var i; for(i = 0; i < arr.length; i++) {

我是电报机器人和节点js的新手,我正在开发一个简单的机器人,它调用api URL来获取json对象,但我在命令中遇到了这个错误。这是命令的代码:

bot.onText(/\/fixtures/, (msg) => {
  const chatId = msg.chat.id;
  var out = "";

  function myFunction(arr) {
      var i;
      for(i = 0; i < arr.length; i++) {
          out += arr[i].name + "--";
      }
  }

  request.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
          var myArr = JSON.parse(this.responseText);
          myFunction(myArr);
      }
  };

  request.open("GET", url, true);
  request.send();

  bot.sendMessage(chatId, out);

您应该在ajax请求答复成功后发送消息。移动
bot.sendMessage(chatId,out)内部
onReadyStateChange
回调:

request.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myArr = JSON.parse(this.responseText);
        myFunction(myArr);
        bot.sendMessage(chatId, out);
    }
};

请求变量是xmlhttprequest的一个简单表达式:var Request=new xmlhttprequest();
request.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myArr = JSON.parse(this.responseText);
        myFunction(myArr);
        bot.sendMessage(chatId, out);
    }
};