【踩坑】用vscode的调试功能调试node时如何进行键盘输入

495 阅读1分钟

在调试nodejs程序时遇到一个问题:

我有一段使用process.stdin获取键盘输入的代码

import { stdin } from "process";

export default function readLineSync(): Promise<string> {
  return new Promise<string>((resolve, reject) => {
    stdin.resume()
    stdin.setEncoding("utf8");
    
    stdin.on("data", function (chunk) {
      stdin.pause();
      resolve(chunk.toString());
    });
  });
}

(async function() {
  console.log("输入字符:");
  const text = await readLineSync();
  console.log(`text: ${text}`)
})();

使用vscode调试功能的时候无法在控制台中输入文字(因为开启的是调试控制台,实际上并非终端):

image.png

而在终端中运行没有问题:

image.png

但我又需要vscode调试中的断点和查看变量之类的功能而不得不用它,所尝试了下,可以通过stdinpush方法将所需要的值传进去:

image.png