【问题标题】:Fetch variable giving old data获取提供旧数据的变量
【发布时间】:2018-08-24 07:07:30
【问题描述】:

我正在尝试使用 node-fetch 和 discord.js 与 API 交互,以便机器人回复 Discord 中的命令,并输出从 API 获取的信息。

但是,它似乎没有为每个命令获取最新数据,而是提供旧数据。

预期的行为是当我输入 !players 时,它会返回 There are 60 players online.,它工作正常,但是当我在浏览器中刷新 API 并看到 player 属性从 60 更改为 61 时,然后输入 @ 987654324@ 再次,它给了我相同的There are 60 players online.。

在我键入命令时确保它始终返回新数据的最佳方法是什么?

你可以在这里找到我当前的 bot.js 代码:https://jsfiddle.net/yvLodz4q/1/

谢谢!

【问题讨论】:

    标签: javascript fetch-api discord.js


    【解决方案1】:

    您的 fetch 方法仅调用一次 - 脚本启动时。如果您想更新此数据,您需要在需要时再次向服务器发送包含必要数据的请求。
    例如,您可以在每次调用!players 命令时再次发送请求。

    【讨论】:

    • 你的意思是我应该在每个if (message.content === '!command') { 中发出一个新的提取请求?
    • 这似乎已经解决了。我想我可以对需要更新的部分执行此操作,而不是运行时。谢谢!
    • 是的。而且,我认为,您可以编写自己的命令处理程序。每个命令都可能有个人类 - 拆分逻辑很好。如果机器人有很多命令和很多功能 - 用条件拆分逻辑不是个好主意。
    • 感谢您的帮助!是的,我会记住这一点。现在它仅供个人使用和测试。谢谢!
    • 祝您有美好的一天。 ;)
    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    相关资源
    最近更新 更多