当前位置: 首页 > 知识库问答 >
问题:

如何访问方法外部的常量(Discord.js Bot开发)

漆雕嘉茂
2023-03-14

所以基本上,我的机器人带有反应角色,它通过使用部分来非常有效地工作。在分配给定角色之前的检查之一是检查反应角色是否对我在代码中定义的msgID做出反应。(这对于有一个像#反应角色这样的通道的服务器很有用,并且总是有一条消息留在那里让人们做出反应)

工作正常。然而,我试图用我的机器人做一些新的事情,我需要保存msgID(因为机器人重复msg一遍又一遍地给不同的人),但是因为msgID的常量在称为bot.on(消息)的方法中我不能在方法之外的任何地方访问const。有什么办法可以解决这个问题吗?也许是一种将其临时存储在配置文件中的方法?

共有2个答案

萧秋月
2023-03-14

您可以将obj分配给函数外部的const变量,并在函数内部为其赋值,然后也可以在函数外部访问它。

请记住,当您将对象分配给const时,它是可变的,从某种意义上说,您可以更改它的键/值,但不能将其他东西分配给这个变量。

    const someObj = {key: null};
    
    function someName() {
      someObj.key = "hello";
    }
    
    console.log(someObj.key);
钦英发
2023-03-14

我不熟悉discord SDK,因此这是一个更一般的建议。

如果您真的需要在此处使用const,请思考。我建议使用let并在函数之外定义它,如:

let msgID


bot.on(message, (message) => {
  msgID = message.id
}) 

// now it's available here
use(msgID)

请记住,const在这里不起作用

 类似资料:
  • 问题内容: 为什么我不能从ReactJS的“外部”访问组件方法?为什么不可能,有什么办法解决呢? 考虑一下代码: 问题答案: React通过attribute提供了一个您要尝试执行的操作的接口。给组件分配一个,其属性将是您的自定义组件: 注意 :仅根据下面的文档,如果子组件被声明为类,则此方法才有效:https : //facebook.github.io/react/docs/refs-and-

  • 本文向大家介绍JavaScript闭包函数访问外部变量的方法,包括了JavaScript闭包函数访问外部变量的方法的使用技巧和注意事项,需要的朋友参考一下 闭包是指有权访问另一个函数作用域中的变量的函数,但作用域的配置机制有一个需要注意的地方,即闭包只能取得包含函数中任何变量的最后一个值。 如以下案例: 执行结果: 表面上看,似乎每个函数返回的i值都不相同,比如c_arr[0]的值应该是0,c_a

  • 问题内容: 我正在开发Spotify应用。我可以登录并获取我的令牌。我的问题是我无法在方法外访问变量。在这种情况下 这是我的方法: 如您所见,我在console.log中记录了名称,并在控制台中获得了正确的值。但是仅在我调用即使返回names变量的情况下得到的函数的情况下,它也可以在这里使用。 我需要那个变量。 问题答案: 没有返回任何东西。你需要从返回的承诺,然后当你回到内 即 它是由外部函数返

  • 问题内容: 嗨,我正在浏览有关内部类的SCJP书,发现了这一说法,类似这样。 方法本地类只能引用已标记的本地变量 在解释中,指定的原因与本地类对象和堆上的局部变量的范围和生存期有关,但我无法理解。我在这里想念任何东西吗? 问题答案: 原因是,在创建方法本地类实例时,编译器实际上会将其引用的所有方法本地变量复制到其中。这就是为什么只能访问变量的原因。甲变量或参考是不变的,所以它停留在同步与其方法本地

  • 问题内容: 这不是直截了当的问题。在我的情况下,外部类变量和内部类setter方法的参数名称相同。喜欢: 现在,我无法初始化外部类实例变量p,因为它指示内部类。再次,我做不到它得到一个错误。现在如何分配外部p,同时将内部Class方法的参数命名为p? 问题答案: 这是您可以/应该这样做的方式:

  • 这不是直截了当的问题。在我的例子中,外部类变量和内部类setter方法的参数名称是相同的。比如: 现在我不能用初始化外部类实例变量p,因为它指示内部类。同样,我不能执行会出现错误。现在,我如何分配外部p,使内部类方法的参数与名称p相同?