pregunta basica rapida,
Al configurar guildmember.timout con discord.js v13, da un ejemplo con .then(console.log) y .catch(console.error) . Usando el ejemplo, el código continuará después del .catch.
muteMember .timeout(time, reason) .catch((error) => { return errors(client, message, args, "mute", error, true); }); muteMember.send ... Por el momento, ejecutará la función de errors y luego continuará con el código después de .catch , por ejemplo, muteMember.send . ¿Cuál es la mejor manera de que se "detenga" después de ejecutar lo que hay dentro de .catch? Gracias de antemano
Puede hacer que devuelva un mensaje falso si se produce el error, luego verifique si es falso y regrese si lo es.
let isModified = await muteMember .timeout(time, reason) .catch((error) => { errors(client, message, args, "mute", error, true) return false; }) if (!isModified) return;Puede usar async-await con try-catch:
async function myFunction() { try { await muteMember.timeout(time, reason) // throws an error if it fails -- jumps to the catch block muteMember.send... } catch(error) { errorcheck = true errors(client, message, args, "mute", error, true); // and whatever other error handling you would like } }La declaración de return solo regresa de la devolución de llamada #catch . Maneje la promesa con una devolución de llamada #then , ahí es donde desea que se ejecute su código cuando sea exitoso.
muteMember .timeout(time, reason) .catch((error) => { //error errorcheck = true return errors(client, message, args, "mute", error, true); }) .then(() => { //success })