Estoy trabajando en la guía para discord.js, pero cuando intento establecer permisos para los comandos de barra diagonal, sigo obteniendo SyntaxError: await solo es válido en funciones asíncronas y los cuerpos de módulos de nivel superior. No estoy seguro si me perdí algo o si es algo simple ya que soy nuevo en esto, pero no pude encontrar una solución.
aquí está el código de la guía que estoy tratando de usar
if (!client.application?.owner) await client.application?.fetch(); const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321'); const permissions = [ { id: '224617799434108928', type: 'USER', permission: false, }, ]; await command.permissions.add({ permissions });Me di cuenta de que no lo puse en una función, no sé cómo me lo perdí, pero supongo que realmente necesitaba un descanso ya que lo obtuve justo después de tomar uno.
Debe envolver await en una función marcada async , si aún no lo ha hecho.
¡Prueba el siguiente código!
// Change the name of the function to whatever name you want! const discordFetchData = async () => { if (!client.application?.owner) await client.application?.fetch(); const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321'); const permissions = [ { id: '224617799434108928', type: 'USER', permission: false, }, ]; await command.permissions.add({ permissions }); }; discordFetchData(); El código anterior le dará una comprensión básica de qué hacer con su código (envuélvalo en una función async ).
También puede hacer que la función sea una función asíncrona, anónima y autoinvocada, como se muestra a continuación.
(async () => { if (!client.application?.owner) await client.application?.fetch(); const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321'); const permissions = [ { id: '224617799434108928', type: 'USER', permission: false, }, ]; await command.permissions.add({ permissions }); })();¡Al final, ambas soluciones funcionarán!
Para obtener más información, visite la función async - JavaScript | MDN .
Podrías probar esto también:
(async function(){ if (!client.application?.owner) await client.application?.fetch(); //And more await calls... })();