page._client 在 Puppeteer 中做了什么?

问题描述

@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 () 获取客户端对象。