0
const fs = require('fs')
const readline = require('readline')
const stream = require('stream')
const rl = readline.createInterface({
input: fs.createReadStream('logs_out.txt')
})
var items = new Set()
// ASYNC FUNCTION READING LINE BY LINE
rl.on('line', function(line) {
let log = JSON.parse(line)
// ADDING ITEMS TO A SET TO GET UNIQUE ITEMS COUNT
items.add(log.resource)
})
// PRINTING OUT THE SIZE OF THE SET
console.log(items.size)
今の問題は、私がこれを行うときconsole.log(items.size)
は全てline
の機能が実行されていても前に実行されているので、私は常にセットのサイズのために未定義の取得または0、です。非同期関数内で同期する方法
これを修正する方法。
ありがとうございます。
はい、それは、複数の非同期呼び出しを持つの追加の複雑さを持つことができ、重複するように見えます。 –
私はJSで始まったばかりなので、そのリンクされた答えのすべての概念を理解するのは少し難しいです。 – deadpoolAlready
@deadpoolは、最後の行を 'rl.on(" end "、function(){/ *ここで* /})のようにsthに入れます' –