Estoy tratando de crear un script donde puedes escribir comandos:
const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout }) let askCommands = async () => { readline.question('> ', async (command) => { // If user exits close readline if(command === 'exit') { readline.close(); return process.exit(); } switchCommands(command); askCommands(); }) } let switchCommands = (command) => { if(command === 'test') { setTimeout(() => { console.log('Hello!') }, 1000) } else { console.log(`Invalid command '${command}'`) } } askCommands(); Funciona bien hasta que uso un asincrónico console.log() . Esto se debe a que el script escribe las salidas asíncronas sin eliminar el '> ' y luego genera una nueva línea que no tiene el '> ' . Además, si en esta nueva línea escribe cualquier carácter y luego lo elimina, el '> ' se agrega automáticamente.
Me gustaría escribir registros asíncronos sin tener el '> ' delante de ellos y sin eliminar el '> ' donde los usuarios escriben los comandos. ¿Hay alguna solución fácil a este problema?