Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript discord.js未处理的承诺拒绝警告:TypeError:无法读取属性';包括';空的_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript discord.js未处理的承诺拒绝警告:TypeError:无法读取属性';包括';空的

Javascript discord.js未处理的承诺拒绝警告:TypeError:无法读取属性';包括';空的,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我最近为我的机器人制作了一个自动角色代码,它读取每个用户的状态,如果他们的状态中有我们的服务器虚荣邀请链接,就给他们一个角色。代码工作正常,机器人添加角色,然后删除角色,但这里的问题是它在错误中循环,而不会使机器人崩溃: (node:38) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'includes' of null (node:38) UnhandledPromiseRejectionWarning:

我最近为我的机器人制作了一个自动角色代码,它读取每个用户的状态,如果他们的状态中有我们的服务器虚荣邀请链接,就给他们一个角色。代码工作正常,机器人添加角色,然后删除角色,但这里的问题是它在错误中循环,而不会使机器人崩溃:

(node:38) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'includes' of null
(node:38) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 345)
我很确定这是因为机器人无法读取离线用户的状态,而这些用户没有状态。我很感谢你的帮助,因为我想不出解决办法。 这是我的代码:

client.on('presenceUpdate', async (oldPresence, newPresence) => {

    const role = newPresence.guild.roles.cache.get("832132526302035992");
    const member = newPresence.member
    const activities = member.user.presence.activities[0];
  
    if (activities && (activities.state.includes( ".gg/moonxile" ) || activities.state.includes("discord.gg/moonxile" ))) {
      return newPresence.member.roles.add(role)
      .catch(err => {
      console.log(err)
      return;
      })

    } else {
    if(member.roles.cache.get(role.id)) {
      newPresence.member.roles.remove(role)
      .catch(err => {
      console.log(err)
      return;

      })
      }
    }
});

首先检查
活动
,然后检查
活动。状态
,最后包括
.include()

,当一些人从“存在”状态更改为“无”时,它将没有数据,因此应进行检查


if(activities&&activities.state&&activities.state.includes(“.gg/moonxile”)| | activities.state.includes(“discord.gg/moonxile”)){
返回newPresence.member.roles.add(角色)
.catch(错误=>{
console.log(错误)
返回;
})
}

哦,好吧,让我试试看。好吧,控制台中充斥着这样的内容:
(节点:174)未处理PromisejectionWarning:TypeError:无法读取未定义(节点:174)未处理PromisejectionWarning:Unhandled Promisejection的属性“状态”。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志--unhandled rejections=strict(请参阅https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (拒绝id:5)
哦,好吧。更新。好的,让我试试看。我试过了,我得到了机器人在用户离线时删除角色,并在他/她恢复在线时将其添加回来。这是控制台显示的另一个问题错误。你能提供更多信息吗?你有没有收到错误当用户离线时,机器人会删除角色,当他/她恢复在线时会将角色添加回来–>如果你想防止这种行为,你必须检查用户状态是否未处于离线状态,并更改其状态哦,好的,让我这样做