I'm doing a slash command handler using discord.js, and I'm getting the "not a function" error. I saw other questions here and some videos on YouTube but I still couldn't solve the problem
This is the code
client.on('interactionCreate', async (interaction => {
if (!interaction.isCommand()) return
const command = client.commands.get(interaction.commandName)
if (!command) return
}))
And this is the error
client.on('interactionCreate', async (interaction => {
^
TypeError: async is not a function
at Object.<anonymous> (C:\Users\...\Desktop\...\...\...\index.js:60:32)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
at node:internal/main/run_main_module:17:47
I have tried:
npm i async
and var async = require('async')
Before I created the variable the error was that async was not defined but now it shows this new error
CodePudding user response:
You missed a ")"
client.on("interactionCreate", async (interaction) => {
if (!interaction.isCommand()) return;
const command = client.commands.get(interaction.commandName);
if (!command) return;
});
CodePudding user response:
You are calling client.on('interactionCreate', f )
where f
is represented as:
async (interaction => {
if (!interaction.isCommand()) return
const command = client.commands.get(interaction.commandName)
if (!command) return
})
JavaScript is interpreting this as async( ... )
.
You can either remove the parentheses surrounding your function, or move the closing parentheses to the end of the arguments of your arrow function.
client.on('interactionCreate', async interaction => {
if (!interaction.isCommand()) return
const command = client.commands.get(interaction.commandName)
if (!command) return
})
OR
client.on('interactionCreate', async (interaction) => {
if (!interaction.isCommand()) return
const command = client.commands.get(interaction.commandName)
if (!command) return
})