如何使用nodejs child_process exec捕获ENOENT

时间:2018-08-13 22:57:12

标签: node.js typescript exec child-process

我正在尝试在没有Internet连接的情况下运行以下代码。

myExt = ""C:\Program Files\Microsoft VS Code\bin\code" --install-extension msjsdiag.debugger-for-chrome"

      console.log(myExt);
      const { error, stdout, stderr } = await exec(myExt);
      if (error) {
        console.error(`error: ${error}`);
      } else {
        console.log(stdout);
        addedExtensions.push(missExt);
      }

问题是我没有在stderr内部得到错误

当我从命令运行时,出现以下错误

C:\Users\shana>"C:\Program Files\Microsoft VS Code\bin\code" --install-extension msjsdiag.debugger-for-chrome
getaddrinfo ENOENT marketplace.visualstudio.com:443

我如何处理来自命令提示符的异常

1 个答案:

答案 0 :(得分:-1)

  

const {error,stdout,stderr} =等待exec(myExt);

这些过程无法等待,因此我们不能简单地对其进行等待和异步处理。 相反,我不得不转换为Promise,然后在标准的await / async

中使用

类似“

的东西
    let result =  await new Promise<boolean>(res=>{
    exec(myExt,function(err,stdOut,stdErr)
    {
    // TO Work
    res(true);
    }
    },rej=>{});
    console.log(result); //True