【问题标题】:discord.js shard.broadcastEval asyncdiscord.js shard.broadcastEval 异步
【发布时间】:2019-03-14 16:06:05
【问题描述】:

在我的机器人中实现分片时遇到问题

这返回正确:

await (async () => {
    return "test3";
}).call()

但是一旦我像这样对它进行分片:

client.shard.broadcastEval(`
    await (async () => {
        return "test3";
    }).call()            
`)

ReferenceError: await is not defined 出错

所以这甚至可能不是做我想做的事情的正确方法。我要做的是获取用户是管理员或具有特定角色的所有公会,我已经编写了脚本,我的问题是由于上面的等待问题,我无法得到回复。

【问题讨论】:

  • 客户端是否有合适的节点版本来解析async/await
  • 我正在运行节点 11.11.0
  • 不要混用回调和承诺。

标签: node.js discord.js


【解决方案1】:

你的代码应该是这样的:

client.shard.broadcastEval(`
    (async => { 
        return "test3";
    })();
`);

从这里查看:Discord.js Guide

【讨论】:

  • 你不知道我从 Discord.js 指南尝试这个例子的次数只是让它失败并出现错误,结果我运行的是旧版本的 discord.js 并在我之后更新已经进行了这些测试..
【解决方案2】:

在您的情况下,您没有使用 async/await。你可以简单地从函数中返回promise。

client.shard.broadcastEval(`
    (() => {
        return Promise.resolve("test3");
    }).call()            
`)

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2020-12-05
    • 2019-10-20
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 2020-12-23
    • 2021-08-16
    相关资源
    最近更新 更多