【问题标题】:Trying to get value from object using external url but尝试使用外部 url 从对象中获取价值,但是
【发布时间】:2022-01-08 02:54:59
【问题描述】:

当我启动机器人控制台时说:

Online with undefined/5

当超过 10 秒时出现此错误:

未定义:1 [对象承诺] ^ SyntaxError:位置 1 处 JSON 中的意外标记 o

我的代码:

let jogadores
client.on("ready", async () => {

async function players_online() {
    const response = fetch(`http://ip:port/dynamic.json`);
    const data = JSON.parse(response);
    jogadores = data.clients;


}

async function autoconnect() {

    if (jogadores === -1) {
        console.log('Offline');

    } else {
        console.log('Online with ' + jogadores + '/5')

    }
}
autoconnect()

setInterval(() => {
    client.user.setStatus('dnd');
    client.user.setActivity(`Online with ${jogadores} players.`, { type: 'PLAYING' })
    players_online()
}, 10000)

})

【问题讨论】:

  • 您需要等待调用获取。试试await fetch()

标签: javascript json discord.js


【解决方案1】:

您的代码有很多问题。我将在下面列出它们:

需要的修复

  • 正如@about14sheep 所说,您必须使用await 才能获得实际响应。
  • 您不应在响应中使用 JSON.parse(),而应使用 response.json() 来获取 JSON 正文。
  • 使用不正确的运算符,对于数字,我建议您使用 == 而不是 ===
  • 在 10 秒过去之前,它将显示未定义。要解决此问题,请在 setInterval() 之前调用该函数。

我添加的可选内容

  • 格式化的JS代码
  • 必要时添加分号
  • 使用 ES6 模板文字功能
  • 在不需要时移除异步

我已经在下面的代码中修复了所有这些问题。

let jogadores;

client.on('ready', async () => {

    async function players_online() {
        const response = await fetch(`http://ip:port/dynamic.json`);
        const data = await response.json();
        jogadores = data.clients;
    }

    function autoconnect() {
        if (jogadores == -1) {
            console.log('Offline');
        } else {
            console.log(`Online with ${jogadores}/5`);
        }
    }

    autoconnect();
    players_online();

    setInterval(() => {
        client.user.setStatus('dnd');
        client.user.setActivity(`Online with ${jogadores} players.`, {
            type: 'PLAYING'
        });
    }, 10000);

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多