required
を取得するモジュールがありますが、モジュールでコードを一時的に実行したくありません。私はちょうどそれをコメントすることができますが、その後、ロードするモジュールから早期に退出する方法があるかどうか疑問に思っています。プロセスを停止せずにノードモジュールを早期にロードすることを終了します
モジュールのコードで実行フローを停止させる方法が組み込まれていて、早期に「戻る」ことはありますか?
required
を取得するモジュールがありますが、モジュールでコードを一時的に実行したくありません。私はちょうどそれをコメントすることができますが、その後、ロードするモジュールから早期に退出する方法があるかどうか疑問に思っています。プロセスを停止せずにノードモジュールを早期にロードすることを終了します
モジュールのコードで実行フローを停止させる方法が組み込まれていて、早期に「戻る」ことはありますか?
実際には、組み込みの方法があります。すべてのノードモジュールはモジュール関数ラッパーの内部にロードされ、モジュールはその関数の本体として実行されます。したがって、コードの残りの部分が実行されるのを停止するには、モジュール内の任意の場所にあるreturn
をそのまま使用することができます。
ノードモジュールは、このような関数ラッパーの内部で実行されます:そのよう
(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;
});
、あなただけのどこかのモジュールでreturn
ステートメントを使用することができ、それがの残りの部分をスキップし、モジュールのラッパー関数から返されますモジュール内のコード
おそらく、コード、もう少し自己記述していない余分なreturn
文はモジュールの真ん中にありますなぜ不思議誰かを残しを作るためにif
ステートメントを使用したり、モジュール内のためのクリーンなコードです:
// this code temporarily removed from being executed
if (someBoolean) {
// your module code here
}
またはしばらく削除する予定がある場合は、大部分のコードをコメントアウトしてください。
ビルドイン方法はありませんが、次の回避策を使用できます。 IIFEにモジュール全体をラップし、return文を使用します。
(function() {
// some code
// stop execution here
return;
// some code
})()
リンターはこれが好きではありませんが、私はリターンが機能するテストランで検証しました。 – nephets
@nephets - 代わりに 'if'文を使用するだけのメモを追加しました。もう1つの答えは、同じリントの警告があります。 – jfriend00
babelはreturn文を使ってモジュールを翻訳しません。 – Mr5o1