Je me demande s'il y a un moyen simple d'obtenir readline « synchrone » ou au moins obtenir l'apparence d'E/S synchrone dans Node.jsComment obtenir synchrone readline, ou "simuler" en utilisant async, dans nodejs?
J'utilise quelque chose comme cela, mais il est assez maladroit
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
terminal: false
});
var i = 0;
var s1 = '';
var s2 = '';
rl.on('line', function(line){
if(i==0) { s1 = line; }
else if(i==1) { s2 = line; }
i++;
})
rl.on('close', function() {
//do something with lines
})'
Au lieu de cela, je préférerais que ce soit aussi facile que quelque chose comme
var s1 = getline(); // or "await getline()?"
var s2 = getline(); // or "await getline()?"
conditions utiles:
(un) Je préfère ne pas utiliser des modules externes ou/dev/stdio filehandle, je soumets le code à un site de soumission de code et ceux-ci ne fonctionnent pas là
(b) Peut utiliser async/Attendent ou générateurs
(c) Dans le cas être en ligne à base
(d) ne devrait pas exiger la lecture entière stdin en mémoire avant le traitement
double possible de [node.js: readSync from stdin?] (http://stackoverflow.com/questions/3430939/node-js-readsync-from-stdin) – supersam654
@ supersam654 J'ai ajouté quelques conditions supplémentaires pour la déduplication. Ma condition est de permettre la lecture de lignes (simples) en utilisant la fonction de type getline en utilisant l'interface readline de manière "synchrone" ou de la simuler en utilisant les fonctions "async/await". –