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几乎 - 是的。 –