Is it possible to use readline to stream input from the console? (Node.js, JS)
P粉868586032
P粉868586032 2024-02-21 17:53:14
0
1
387

I have a conditional array ARR and I want to write values to it in one row

I try to do this

import * as readline from 'node:readline/promises'; import { stdin as input, stdout as output } from 'process'; const rl = readline.createInterface({input, output}) let arr =[] console.log('Enter Values: ') for (let i = 0; i < 5; i++) { arr[i] = await rl.question('')

But when I do this, I get line-by-line input:

Enter Values: 1 A 2 B

I need to:

Enter Values: 1 A 2 B

P粉868586032
P粉868586032

reply all (1)
P粉457445858

readlineSeparate the input stream with newlines, but you want to separate it with spaces. The following transformation flow achieves this. Note that this is used withfor wait (...) {}instead offor (...) { wait }.

var input = new stream.Transform({ readableObjectMode: true, transform(chunk, encoding, callback) { this.buffer = this.buffer ? Buffer.concat([this.buffer, chunk], this.buffer.length + chunk.length) : chunk; while (true) { var offset = this.buffer.indexOf(" "); if (offset === -1) break; this.push(this.buffer.toString("utf8", 0, offset)); while (this.buffer[offset + 1] === 0x20) offset++; this.buffer = this.buffer.slice(offset + 1); } callback(); } }); console.log('Enter Values: '); process.stdin.pipe(input); let arr = []; let i = 0; for await (var number of input) { arr[i] = number; i++; if (i >= 5) break; } console.log(arr);
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!