【问题标题】:Cannot read property 'length' of undefined using sendMessage function无法使用 sendMessage 函数读取未定义的属性“长度”
【发布时间】:2020-04-11 06:54:33
【问题描述】:

所以我希望我的机器人在某个服务器中每 10 分钟向随机成员发送一条 dm。当我的机器人从服务器向每个人发送 dm 时,它会发送完整的消息。

但是当我启动我的机器人时,他说这个错误代码:无法读取未定义的属性“长度”。

 if (message.content.startsWith(botconfig.prefix + 'dmall')) {
    console.log("demo");
    var list = message.guild.members;
    sendMessage(list);
  }
});


function sendMessage(list) {
  setTimeout(function () {
    for (i = 0; i < list.length; i++) {
      console.log(list.length);
    }

    console.log("I'm done, mate!");
    sendMessage();
  }, 10 * 1000);
}
CONSOLE: 
demo
4 (is the amount of the members)
4
4
4
for (i = 0; i < list.length i++) {

TypeError: Cannot read property 'length' of undefined

【问题讨论】:

  • 它记录"I am done, mate!" 吗?
  • 是的,但它说Cannot read property 'length' of undefined。
  • list[i] 记录了什么?
  • 服务器中的成员数量
  • 好的。第二次调用sendMessage() 时,您没有传递list 参数。在console.log("I'm done, mate!")之后应该是sendMessage(list)

标签: node.js discord discord.js


【解决方案1】:

第二次调用sendMessage 函数时,您没有传递list 参数。

function sendMessage(list) {
  setTimeout(function () {
    for (i = 0; i < list.length; i++) {
      console.log(list.length);
    }

    console.log("I'm done, mate!");
    sendMessage(list); // Added this
  }, 10 * 1000);
}

【讨论】:

  • 现在可以使用了,谢谢!但为什么它发送的成员数量是 4 倍?
  • @MoadTouhafi 我建议为您的查询创建一个新问题。您可以在此处分享链接(针对新问题)。
  • @MoadTouhafi 另外,如果我的回答满足您的问题,您介意接受它作为正确答案吗?
  • 你是怎么做到的?
  • 这可能对你有帮助 stackoverflow.com/help/someone-answers :)
猜你喜欢
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
  • 2017-04-28
  • 2015-08-10
  • 2020-09-14
  • 2018-01-11
相关资源
最近更新 更多