问题描述
@H_404_0@我阅读了整个 Puppeteer 文档,但不幸的是,他们没有关于
const discord = require("discord.js"),client = new discord.Client,const { Player } = require("discord-player");
const player = new Player(client,{ quality: 'highestaudio',enableLive: true,leaveOnEmpty: false,leaveOnEnd: false,leaveOnStop: false,autoSelfDeaf: false,});
client.player = player;
client.on("message",async (message) => {
const args = message.content.slice(settings.prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
if(command === "volume"){
if (!message.member.voice.channel) return message.channel.send(` You're not in a voice channel !`);
if (message.guild.me.voice.channel && message.member.voice.channel.id !== message.guild.me.voice.channel.id) return message.channel.send(`You are not in the same voice channel !`);
if (!client.player.getQueue(message)) return message.channel.send(` No music currently playing !`);
if (!args[0]) return message.channel.send(`The current volume is: **${client.player.getQueue(message).volume}**`);
if (Math.round(parseInt(args[0])) < 1 || Math.round(parseInt(args[0])) > 100) return message.channel.send(` Please enter a valid number (between 1 and 100) !`);
client.player.setVolume(message,parseInt(args[0]));
message.channel.send(`Volume set to **${parseInt(args[0])}%** !`);
}
});
的 _client
属性的任何文档。
@H_404_0@所以我的问题是,page
是什么?
@H_404_0@和使用有什么区别
page._client
@H_404_0@和
await page._client.send('');
解决方法
根据 JS 约定,以 _client
等下划线为前缀的字段和方法是“私有的”,不可依赖。这几乎肯定也是它没有记录的原因。您使用它的风险由您自己承担。在较新版本的 puppeteer 中,此字段可能会消失或做一些完全不同的事情。
较新的 JavaScript 版本具有适当的私有字段和方法(在类定义中以 #
为前缀),因此 puppeteer 很可能很快会将这些字段转换为适当的私有字段。
没有关于 page._client
的文档。
避免使用 page._client
,因为它是私有 API。
您可以使用 await page.target ()
获取客户端对象。