Eylexander / Project-1B

Learning JS through Discord.js
MIT License
0 stars 0 forks source link

Pause issue #13

Closed Eylexander closed 2 years ago

Eylexander commented 2 years ago

Hey @dannyhpy, ça faisait longtemps que je m'étais pas mis à coder ducoup j'en ai profité pour relire un peu tout ce que j'avais fait et rajouter 2 3 trucs. Donc j'ai ajouté une commande Fun de spam et le problème c'est que c'est efficace, et donc il n'y a pas vraiment de cooldown à la répétition et donc ça bug à cause de la limite d'envoie de Discord. (La commande se trouve dans commands/DevTools/spam.js)

Voici la boucle qui gère ça :

for (let i = 0; i < args[0]; i++) {
    message.channel.send(param.join(' '))
    setTimeout(() => {}, 2000) // Pause not working
}
dannyhpy commented 2 years ago

Tu peux faire comme ça :

const sleep = ms => new Promise(r => setTimeout(r, ms))

// ...

for (let i = 0; i < args[0]; i++) {
    message.channel.send(param.join(' '))
    await sleep(2000) // Va attendre que la promesse soit complété/résolu
}

Une version plus complète de sleep pour comprendre :

/**
 * @param {number} ms Millisecondes
 */
function sleep (ms) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, ms) // Compléter/résoudre la promesse après `ms`
  })
}
Eylexander commented 2 years ago

Ca marche parfaitement bien, j'avais trouvé quelque chose de similaires dans mes recherches mais ce n'était pas au point. Merci !