Wie behalte ich ein node.js-Skript am Leben, während Versprechen gelöst werden?

8

Mein Skript führt einige asynchrone Aufgaben unter Verwendung von Versprechen (mit der q-Bibliothek) aus. Laufende Mokkatests funktionieren gut. Das Ausführen des Skripts über die Befehlszeile funktioniert jedoch nicht. Der Knotenprozess stirbt sofort.

%Vor%     
Kees de Kooter 15.09.2015, 11:54
quelle

2 Antworten

4
  

Mein Skript führt einige asynchrone Aufgaben unter Verwendung von Versprechen (mit der q-Bibliothek) aus. Laufende Mokkatests funktionieren gut. Das Ausführen des Skripts über die Befehlszeile funktioniert jedoch nicht. Der Knotenprozess stirbt sofort.

Dies ist sicherlich ein Fehler, bitte melden Sie es. Die Node.js-Umgebung sollte nicht vorzeitig beendet werden, während sich noch Dinge in der Ereignisschleife befinden.

Sie sollten Ihren Code nicht ein Bit ändern müssen, damit dies geschieht. Die Q-Bibliothek (beachten Sie, dass es heute modernere und nativere Alternativen gibt) plant Async-Callbacks für die Warteschlange " process.nextTick " für die "Mikrotask" ein. Ihre Bot-Bibliothek führt vermutlich auch IO durch, beide Dinge sollten dazu führen, dass der Knoten nicht beendet wird.

    
Benjamin Gruenbaum 15.09.2015, 14:34
quelle
7

Node.js wird beendet, wenn keine weiteren Callbacks zu verarbeiten sind. Sie können setInterval oder setTimeout verwenden, um immer einen zu behalten, damit der Prozess nicht automatisch beendet wird.

%Vor%     
Hyo Byun 15.09.2015 12:34
quelle

Tags und Links