Ввести несколько переменных на разных строках Node js

Подскажите пожалуйста, какие способы решения есть у проблемы: Необходимо ввести пару переменных, а затем, на следующей строке ввести еще несколько переменных, а дальше уже их вычислять. Не могу понять, как это осуществить. Вот что вышло сейчас:

rl.on( 'line', function( data ) {
    data = data.split(' ');
    const n = +data[0];
    const t = +data[1];
    florsArr(rl);
});
function florsArr (rl) {
    rl.on( 'line', function( flors ) {
        flors = flors.data.split(' ');
        console.log(flors);
    });
};

проблема в том, что как только начинается перевод на новую строку, программа завершается. Есть ли какое то решение данной проблемы?


Ответы (1 шт):

Автор решения: ksa

Так пойдет?

const readline = require( 'readline' );
const rl = readline.createInterface(process.stdin, process.stdout);

test('Нужно указать пару переменных через пробел')
    .then(a => test('Еще, сколько не жалко (так же через пробел)', a))
    .then(a => {
        rl.close();
        console.log(a)
    })
    .catch(console.log)

//
function test(mes, arr = []) {
    return new Promise(res => {
        rl.setPrompt(mes + ' ');
        rl.prompt();
        rl.on( 'line' , data => {
            data = data.split(' ');
            const n = data[0];
            const t = data[1];
            res([...arr, data])
        });
    })
}

Или так...

const readline = require( 'readline' );
const rl = readline.createInterface(process.stdin, process.stdout);

rl.question('Нужно указать пару переменных через пробел ', data1 => {

    rl.question('Еще, сколько не жалко (так же через пробел) ', data2 => {
        data1 = data1.split(' ');
        data2 = data2.split(' ');
        console.log(data1, data2)
        rl.close();
    });
});

→ Ссылка