2016-05-25 7 views
1

Ich habe ein Modul, das required bekommt, aber ich möchte vorübergehend nicht den Code im Modul ausführen. Ich könnte es einfach kommentieren, aber dann habe ich mich gewundert, ob es einen Weg gibt, um von einem Lademodul vorzeitig zurück zu kommen.Beenden des Ladens Knotenmodul früh ohne Prozess zu stoppen

Gibt es einen eingebauten Weg, um den Ausführungsfluss durch den Code des Moduls zu stoppen, und "früh" zurückzukehren?

Antwort

3

Eigentlich gibt es einen eingebauten Weg. Jedes Knotenmodul wird in einen Modulfunktionswrapper geladen, und das Modul wird als der Rumpf dieser Funktion ausgeführt. So können Sie einfach eine einfache return irgendwo im Modul verwenden, um den Rest des Codes von der Ausführung zu stoppen.

Knoten Module erhalten innerhalb einer Funktion Wrapper wie folgt ausgeführt:

(function (exports, require, module, __filename, __dirname, process, global) { 
    // module code is here 

    // a return statement skips executing any more code in your module after that statement 
    return; 
}); 

Als solche, die Sie gerade eine return Anweisung überall im Modul verwenden können, und es wird aus dem Modul Wrapper-Funktion zurückkehren, Überspringen der Rest der Code im Modul.


Es ist wahrscheinlich sauberer Code nur eine if Anweisung oder in Ihrem Modul verwenden Sie den Code ein wenig mehr Selbst zu beschreiben und nicht zu verlassen jemand fragen zu machen, warum es eine Fremd return Aussage in der Mitte eines Moduls:

Oder kommentieren Sie einfach einen großen Codeabschnitt aus, wenn Sie ihn für eine Weile entfernen möchten

+0

Linters mögen das nicht, aber ich verifizierte mit einem Testlauf, dass Rückkehr funktioniert. – nephets

+0

@nephets - Ich habe eine Notiz hinzugefügt, die nur eine 'if'-Anweisung verwendet. Die andere Antwort hat die gleichen Warnhinweise. – jfriend00

+0

Babel wird ein Modul mit einer return-Anweisung nicht transpilieren, wenn die Anweisung besser ist. – Mr5o1

1

Es gibt keine integrierte Möglichkeit, aber Sie können die folgende Problemumgehung verwenden. Wickeln Sie das gesamte Modul in ein IIFE und verwenden Sie einfach die Return-Anweisung:

(function() { 

    // some code 

    // stop execution here 
    return; 

    // some code 

})() 
Verwandte Themen