导入 readline 后的 Node.js 错误

编程入门 行业动态 更新时间:2024-10-07 00:20:47

导入 readline 后的 Node.js <a href=https://www.elefans.com/category/jswz/34/1771449.html style=错误"/>

导入 readline 后的 Node.js 错误

我在 Windows 10 Pro 22H2 x64 上使用 Node.js 18.16.0 x64,我刚刚遇到一个奇怪的错误,导致我在导入 readline 后无法使用 Node.js。

我需要一种方法来仅使用内置的而不是任何需要安装的库来获取用户输入。

任何需要 readline 的代码都会触发该错误。

我从这个answer复制粘贴代码:

const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.question(`What's your name?`, name => {
  console.log(`Hi ${name}!`);
  readline.close();
});

我明白了:

Welcome to Node.js v18.16.0.
Type ".help" for more information.
> const readline = require('readline').createInterface({
...   input: process.stdin,
...   output: process.stdout,
... });
undefined
>
>
rreeaaddlliinnee..qquueessttiioonn((``WWhhaatt''ss  yyoouurr  nnaammee??``,,  nnaammee  ==>>  {{
...
    ccoonnssoollee..lloogg((``HHii  $${{nnaammee}}!!``));;
...
    rreeaaddlliinnee.lloossee(());;
...
}}));;

然后在我按下 Enter node.exe 后立即自行关闭。

我也试过这个

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

function readLineAsync(message) {
  return new Promise((resolve, reject) => {
    rl.question(message, (answer) => {
      resolve(answer);
    });
  });
} 

// Leverages Node.js' awesome async/await functionality
async function demoSynchronousPrompt() {
  var promptInput = await readLineAsync("Give me some input >");
  console.log("Won't be executed until promptInput is received", promptInput);
  rl.close();
}
Welcome to Node.js v18.16.0.
Type ".help" for more information.
> const readline = require('readline');
solve(answer);
undefined
>
> const rl = readline.createInterface({
...   input: process.stdin,
...   output: process.stdout
... });
undefined
>
>
ffuunnccttiioonn  rreeaaddLLiinneeAAssyynncc((mmeessssaaggee))  {{
...
    rreettuurrnn  nneeww  PPrroommiissee((((rreessoollvvee,,  rreejjeecctt))  ==>>  {{
...
        rrll..qquueessttiioonn((mmeessssaaggee,,  ((aannsswweerr))  ==>>  {{
...
            rree        }}));;
...
    }}));;
...
}}
undefined
>

>
////  LLeevveerraaggeess  NNooddee..jjss''  aawweessoommee  aassyynncc//aawwaaiitt  ffuunnccttiioonnaalliittyy
undefined
>
aassyynncc  ffuunnccttiioonn  ddeemmooSSyynncchhrroonnoouussPPrroommpptt(())  {{
...
    vvaarr  pprroommppttIInnppuutt  ==  aawwaaiitt  rreeaaddLLiinneeAAssyynncc((""GGiivvee  mmee  ssoommee  iinnppuutt  >>""));;
...
    ccoonnssoollee..lloogg((""WWoonn''tt  bbee  eexxeeccuutteedd  uunnttiill  pprroommppttIInnppuutt  iiss  rreecceeiivveedd"",,  pprroommppttIInnppuutt));;
...
    rrll.lloossee(());;
...
}}

同样的事情发生了。

怎么回事?

回答如下:

不是错误。您在 REPL 中运行了它,创建了一个从标准输入到标准输出的流,因此之后您在 REPL 中键入的任何内容都会被复制。从文件运行它。

更多推荐

导入 readline 后的 Node.js 错误

本文发布于:2024-05-30 07:00:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770232.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   readline   Node   js

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!