Betrachten Sie den folgenden Code, Eingabedatei und die Ergebnisse. Der setTimeout ist hier, um einen externen Anruf nachzuahmen, beispielsweise http get. Was ist der beste/einfachste Weg, um die Ergebnisse in Ordnung zu halten? Die offensichtlich hinzugefügte Latenz und das nicht gleichzeitige Laufen ist in Ordnung. rl.pause() und rl.resume() machen den Trick nicht, wahrscheinlich, weil es den Unterstreichungseingangsstrom pausiert, oder vielleicht fehlt mir hier etwas?Gibt es eine Möglichkeit, readline tatsächlich zu pausieren?
'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);
});
Eingabedatei:
1
2
3
4
5
6
7
8
9
10
11
12
Ergebnisse:
10
6
1
11
3
7
8
9
12
2
5
4
Mit anderen Worten: Nein. Danke. – niry
@niry ziemlich viel - ja. –