1
考慮下面的代碼,輸入文件和結果。 setTimeout在這裏模仿外部呼叫,例如http get。保持結果有序的最佳/簡單方法是什麼?顯而易見的附加延遲並沒有運行併發是好的。 rl.pause()和rl.resume()並沒有這樣做,可能是因爲它暫停了下劃線輸入流,或者我在這裏丟失了某些東西?有沒有一種方法可以實際暫停readline?
'use strict';
let rl = require('readline').createInterface({
input: require('fs').createReadStream('inputFile')
});
rl.on('line', line => {
rl.pause();
setTimeout(_ => {
console.log(line);
rl.resume();
}, Math.random() * 2000);
});
INPUTFILE:
1
2
3
4
5
6
7
8
9
10
11
12
結果:
10
6
1
11
3
7
8
9
12
2
5
4
換句話說:不,謝謝。 – niry
@ niry幾乎 - 是的。 –