Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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 API角色信息(Discord.js)_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript 强制更新Discord API角色信息(Discord.js)

Javascript 强制更新Discord API角色信息(Discord.js),javascript,node.js,discord.js,Javascript,Node.js,Discord.js,嘿,我是一个业余JavaScript程序员,我想为我正在开发的机器人制作一个“temp mute”命令。然而,我遇到了一个错误,我不知道如何解决 我的代码中没有具体的错误,但经过数小时的测试,我相信我已经发现了: discord.js在发送命令后立即存储API信息,如角色。问题在于,tempmute命令使用setTimeout()在静音时间到期后执行操作。其中一个操作是检查用户是否已手动取消静音,方法是检查用户是否具有“静音”角色。这就是问题所在。发送命令时存储的数据与实际数据不同,这会导致if

嘿,我是一个业余JavaScript程序员,我想为我正在开发的机器人制作一个“temp mute”命令。然而,我遇到了一个错误,我不知道如何解决

我的代码中没有具体的错误,但经过数小时的测试,我相信我已经发现了: discord.js在发送命令后立即存储API信息,如角色。问题在于,tempmute命令使用setTimeout()在静音时间到期后执行操作。其中一个操作是检查用户是否已手动取消静音,方法是检查用户是否具有“静音”角色。这就是问题所在。发送命令时存储的数据与实际数据不同,这会导致if语句每次都返回false,即使它应该返回true

我的问题是:有没有简单的方法让数据更新并存储真实数据。

例如:

你从3个苹果和0个橙子开始

该数据存储在API中

当您运行该命令时,该数据将在命令执行期间本地存储在某个位置

然后命令会拿走你的苹果,给你一个橘子

它存储了你原来有多少苹果和桔子供以后使用

5秒钟后,程序将开始把橘子拿走,然后把苹果还给你

但是在它这么做之前,它会检查你的橘子是否已经被其他人拿走,所以它会询问API

但是API说你有3个苹果和0个桔子,而实际上你有0个苹果和1个桔子

所以你没有把你的苹果拿回来


有没有办法让程序更新它的数据并意识到你有一个橙色?

要更新API中的最新数据,请等待
.fetch()
。在这种情况下,您希望
等待.fetch()
然后访问它的roles属性。(注意这需要在
异步函数中进行)

谢谢!我只需要将这个强制选项设置为true,就解决了问题。