在尝试 discord.js 之外使用 awaitMessages 的结果

Posted

技术标签:

【中文标题】在尝试 discord.js 之外使用 awaitMessages 的结果【英文标题】:Using result of awaitMessages outside try discord.js 【发布时间】:2020-11-11 14:59:29 【问题描述】:

我正在使用 awaitMessages 来获取对提示的消息响应。 这是我当前的代码

// other code... all fine
try 
  const response = await message.channel.awaitMessages(
    message2 => message2.content > 0 && message2.content < 11,
    
      max: 1,
      time: 20000,
      errors: ['time'],
    ,
  );

catch (err) 
  console.log(err);
  return message.channel.send('No value given, or value was invalid.');

const reply = parseInt(response.first().content);
// gives error right there ^^^

它给出了错误

ReferenceError: response is not defined

如果我添加一行将response 定义为null,它仍然不起作用。

【问题讨论】:

【参考方案1】:

您需要在 try-catch 范围之外定义response

let response;
try 
    response = await message.channel.awaitMessages(
            message2 => message2.content > 0 && message2.content < 11, 
            max: 1,
            time: 20000,
            errors: ['time']
        );
 catch (err) 
    console.log(err);
    return message.channel.send('No value given, or value was invalid.');

const reply = parseInt(response.first().content);

【讨论】:

啊,我尝试的时候定义不同,用let response = null然后let response = ...

以上是关于在尝试 discord.js 之外使用 awaitMessages 的结果的主要内容,如果未能解决你的问题,请参考以下文章

await 仅对异步函数有效城市字典 api discord js

尝试为我的 discord.js 机器人创建排行榜命令,但除第一名之外的所有值都保持为 0

discord.js bot await 仅在异步函数中有效

Discord.JS Ping 编辑命令

使用 Discord.js 的批准/拒绝系统

Discord.js V12 用户信息 createdAt /joinedAt 未定义