2017-07-19 10 views
0

ノードのファイルから読み込もうとしています。ここに私のコードはあります:なぜ私のreadFileSync関数は実行されていませんか?

何らかの理由で、readFileSyncがまったく実行されません。ログに記録されるのは「ファイルを読み終えました...」です

ただし、(同期ではなく)readFile()に変更すると、この関数は実行されて正常に動作します。私は何が欠けていますか?

答えて

4

readFileSyncは、同期型であるためコールバックパラメータを受け入れません。それはあなたが結果を何もしていないことだけだ、readFileSyncあるが実行されて、

var markup = fs.readFileSync(path, {encoding: "utf8"}); 
const $ = cheerio.load(markup); 
// ... 

を明確にする:あなたは、同期機能の下にコールバック内からコードを移動するようにコードを変更する必要がありますコールバックパラメータが無視されています。

+0

意見:あなたは非同期コードとコールバックを把握しているようですが、これはノードでのプログラミングの推奨方法です。メソッドを同期型に変更するのではなく、そのメソッドをそのまま使うことができます – CodingIntrigue

+1

この特定のケースでは、実際には必要ありませんが、通常は –

+0

これをキャッチしてくれてありがとう! –

0

fs.readFileSyncfs.readFile()の同期バージョン。パスの内容を返します コンテンツが返されると、実行するタスクを実行できます。 詳細については、次のリンクを参照してください。readFileSync

関連する問題