亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Node.js 中僅從命令行讀取一行,類似于 Python 的“input”或 C++ 的

如何在 Node.js 中僅從命令行讀取一行,類似于 Python 的“input”或 C++ 的

繁星點點滴滴 2022-12-22 12:44:00
在 Node 中,似乎沒有直接的方法可以輕松地從命令行獲取一行。到目前為止我找到的解決方案:readline模塊的on('line', callback)[ * ]readline的question(q, callback)[ * ]process.stdin.pipe(require('split')()).on('data', callback) [*]fs.readFileSync(0).toString [*]但以上所有內容都不像pythoninput或 C++那樣直接std::getline。(此外,我無法獲得選項 (4) 在 Windows 上工作。)該readline方法可能是最好的,但它需要使用 的事實callbacks令人沮喪。
查看完整描述

1 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

將專用readline模塊的功能包裝在 promises 中可能仍然是最好的方法。這里我們模擬 Pythoninput和 C++ 的getline功能。


請注意,節點事件不僅具有on功能,而且具有once功能。


// input.js


const readline = require('readline');


const cmd = readline.createInterface({

  input: process.stdin,

  output: process.stdout

});



/**

 * Emulate Python's `input` function.

 */

export async function input(prompt) {

  return new Promise(r => cmd.question(prompt, r));

}


/**

 * Emulate C++'s `getline` function.

 */

export async function getline() {

  return new Promise(r => cmd.once('line', r));

}

// main.js


async function main() {

  const x = await input('What is x?');

  console.log('x is', x);


  console.log('What is y?');

  const y = await getline();

  console.log('y is', y);

}


main();


查看完整回答
反對 回復 2022-12-22
  • 1 回答
  • 0 關注
  • 84 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號