全局?)导出的类"/>
将变量传递给(全局?)导出的类
[如果这个问题没有实际意义,我深表歉意-我可能对module.export
的确切工作方式以及各类之间的作用域缺乏了解,但我会尽力进行解释。我目前有一个带有MusicPlayer
类音乐播放器的discord机器人-此类以这种方式导出:
const ytdl = require('ytdl-core-discord');
const MusicQueue = require('./musicqueue');
const discordUtils = require ('../../../utils/discord-utils');
class MusicPlayer {
constructor() {
this.repeat_playlist = false;
this.queue = new MusicQueue(); // this is the persistent queue for the server
this.dispatcher = null;
this.volume = 1;
this.stopped = true;
this.paused = false;
this.repeat_current_song = false;
this.auto_delete = false;
this.manual_index = false;
this.autodcEnabled = false;
}
....
}
module.exports = new MusicPlayer();
我有各种与音乐相关的命令可以像这样导入此音乐播放器:
const { Command } = require('discord.js-commando');
const discordUtils = require ('../../utils/discord-utils');
let musicplayer = require(`./modules/musicplayer`);
module.exports = class TestCommand extends Command {
constructor(client) {
....
}
...
}
我的问题是,由于要通过musicplayer
导出局部变量,因此该如何将其传递给module.exports = new MusicPlayer();
构造函数?
据我了解,使用module.exports = new MusicPlayer();
将使我可以在整个项目中使用相同的musicplayer
对象(这是我想要的);但是-这是我不确定module.exports
如何工作的地方-无法保证musicplayer
何时会被实例化。
如果您从不使用与音乐相关的命令,则将不会创建musicplayer
,因为将永远不会运行let musicplayer = require('./modules/musicplayer');
,对吗?
两种方法中,现在我都需要从其中一个命令中将某些内容传递给musicplayer
构造函数,该如何以不必重复执行类似操作的方式来做到这一点:每个需要音乐播放器的文件?我有没有办法一次声明let musicplayer = require('./modules/musicplayer')(variable);
并在整个代码库中使用let musicplayer = require('./modules/musicplayer')(variable);
?
让我们列出一些要求:
更多推荐
将变量传递给(全局?)导出的类
发布评论