diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9423844..468934f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -209,6 +209,30 @@ même message. Contrairement aux autres éléments, les boutons doivent se faire collecter via la fonction [`collect`](./src/buttons/loader.ts#L46) juste après leur déclaration. +## Autocomplétion + +La réponse qu'attent Discord doit se faire obligatoirement sous 3 secondes. +Pour se faire on peut utiliser un timeout avec +[une race](https://fr.wikipedia.org/wiki/Situation_de_comp%C3%A9tition). + +```typescript +let timeoutId: NodeJS.Timeout; +const delay = new Promise(function (_, reject) { + timeoutId = setTimeout(function () { + reject(new Error()); + }, 2900); // correspond au temps du timeout en ms +}); + +const resultat = await Promise.race([delay, commandeQuiRenvoieUnPromise]) + .then((res) => { + clearTimeout(timeoutId); + return resultatVoulu; + }) + .catch(() => { + return resultatErreur; // correspond à temps écoulé ou erreur de notre commande + }); +``` + ## Modifier du code Quand vous modifiez quelque chose, pensez à mettre-à-jour les langues. Si vous