Was bedeutet dieser JavaScript Error und wie behebe ich ihn? (Discord JS)?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich zitiere direkt aus der Dokumentation:

By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

Der Emitter ist dasselbe Objekt, dem du mit addListener die Listener angehängt hast.

Statt nun aber stumpf die maximale Anzahl zu erhöhen oder die Warnung zu ignorieren (es ist kein Fehler, die elf Listener werden trotzdem abgearbeitet), würde ich dazu raten, das Problem näher zu betrachten. Durchaus kann es sein, dass du in deinem Code irgendwo einen Fehler hast (etwas, was die Event Loop blockiert). Mit einem Node.js Profiling-Tool (nutze Google) zu prüfen, wäre wohl kein schlechter Anfang, um herauszufinden, welche Aktionen zu viel Zeit beanspruchen.

Der Discord.js-Guide führt übrigens ebenfalls Informationen zu dieser Warnung auf, mitsamt Lösungsvorschlägen, wie man dem nachgehen kann.


bycranix 
Beitragsersteller
 13.10.2020, 23:07

Ich habe das Problem behoben^^ vielen dank dir trotzdem für deine Antwort auf meine Frage :)

0
regex9  13.10.2020, 23:40
@bycranix

Es wäre gut, wenn du noch ergänzen würdest, wie deine Lösung nun aussah bzw. wo die Fehlerquelle lag. Es ist immerhin ein Problem, mit dem offensichtlich auch andere zu kämpfen haben.

0

Kenne den nicht, aber verstehe den wie folgt:

Du hast für einen Event sehr viele Listener angemeldet. Du sagtst JavaScript, dass viele Stellen Code von dir bei einem Ereignis aufgerufen werden sollen.

Die Liste für eine Art von Event war schon zu 100% der voreingestellten Anzahl von Listenern (deine Methoden) belegt.

Frage: registrierst du Listener in einer Schleife?