2017-09-24 60 views
-1

node.jsでは、(ファイル全体を読み取るのではなく)1行ずつ同期して読み取ることができるようにしたいだけでなく、一部の行の後に読み取りを停止することができます。node.jsの行を同期して読み込む方法は?

私はこのhttps://nodejs.org/api/readline.htmlを見ましたが、それを同期的に行う方法は説明していません。私はまた、彼らは同期していると言うファイルが読み込まれる前に、この

https://github.com/nickewing/line-reader

lineReader.eachLine('big_file.txt', function(line, last) { 
    console.log(line); 

    if (last) { 
    return false; // stop reading 
    } 
}); 
console.log("test"); 

が、testプリントを、試してみました。それはそうではないように見えます。

行が印刷された後にテストプリントを表示します。

誰でもこれを行う方法を知っていますか?

ありがとう

+0

'readline'は効率的かつ非同期的な処理用です。ブロッキングを主張する場合は、['readSync'](https://nodejs.org/api/fs.html#fs_fs_readsync_fd_buffer_offset_length_position)を使用して、必要な行に分割することができます。 – Bergi

+0

readSyncは、私が望まないファイル全体を読み込みます。 – omega

+0

'offset'と' length'パラメータを詳しく見てみましょう... – Bergi

答えて

0

ラインリーダーには、非同期ですが約束が返ってきます。ライン・リーダーの後に同期プロミス・ハンドラを使用する必要があります。 Github readme line reader

var lineReader = require('line-reader'); 

// read all lines: 
lineReader.eachLine('file.txt', function(line) { 
    console.log(line); 
}).then(function (err) { 
    if (err) throw err; 
    console.log("I'm done!!"); 
}); 
+0

コードの表示方法を教えてください。 – omega

+0

約束は同期していません。 – Bergi

+0

これはメソッドの前回の結果と同期しています – fisehara

関連する問題