【问题标题】:Cannot send an empty message无法发送空消息
【发布时间】:2018-07-29 21:45:17
【问题描述】:

我目前正在使用 Node JS 制作一个不和谐的聊天机器人,我正在尝试在其中连接四个。目前我唯一想做的就是绘制初始游戏板。

我收到一个错误:

'UnhandledPromiseRejectionWarning: DiscordAPIError: Cannot send an empty message' 错误。

这是我的代码,应该绘制一个矩形框(游戏板)。

const boardSquareDef = "| |"
const boardSquareRed = "|R|"
const boardSquareBlue = "|B|"

var defaultDrawnBoard;
var drawnBoardX;

var boardX = 7;
var boardY = 6;

var botChannel = client.channels.get("469825469697622029");

// This function is called elsewhere
function BoardDraw ()
{
  for (var i = 0; i >= boardX; i++) {
    drawnBoardX += boardSquareDef;
  }

  for (var i = 0; i >= boardY; i++) {
    defaultDrawnBoard += drawnBoardX + "\n";
  }

  botChannel.send(defaultDrawnBoard); // <--- error here!
}

我不明白为什么这个字符串没有得到任何文本。有没有人注意到任何异常?

【问题讨论】:

  • 这不会将任何内容附加到 defaultDrawnBoardboardXboardY 在调用它之前已被修改为零。您是否尝试在 send 之前记录 boardX + " " + boardY + " " defaultDrawnBoard
  • 您应该在 for 循环中使用 &lt;=

标签: node.js discord


【解决方案1】:

首先你需要初始化 defaultDrawnBoarddrawnBoardX,否则循环打印类似 undefined|| || || |

的内容

var defaultDrawnBoard="";

var drawBoardX="";

在 BoardDraw 函数中,使用 i&lt;= 而不是 i>= 因为这不会让循环开始。

所以你的代码应该是这样的,

const boardSquareDef = "| |"
const boardSquareRed = "|R|"
const boardSquareBlue = "|B|"

var defaultDrawnBoard="";
var drawnBoardX="";

var boardX = 7;
var boardY = 6;

var botChannel = client.channels.get("469825469697622029");

// This function is called elsewhere
function BoardDraw ()
{
  for (var i = 0; i <= boardX; i++) {
    drawnBoardX += boardSquareDef;
  }

  for (var i = 0; i <= boardY; i++) {
    defaultDrawnBoard += drawnBoardX + "\n";
  }

  botChannel.send(defaultDrawnBoard); // <--- error here!
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-07
    • 2021-05-05
    • 2021-06-25
    • 2022-01-01
    • 2020-01-25
    • 2022-01-20
    • 2019-03-05
    相关资源
    最近更新 更多