代码之家  ›  专栏  ›  技术社区  ›  Shan Khan

如何用nodejs子进程exec捕获enoint

  •  -1
  • Shan Khan  · 技术社区  · 7 年前

    我试图在没有网络连接的情况下运行以下代码。

    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 回复  |  直到 7 年前
        1
  •  -1
  •   Shan Khan    7 年前

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

    这些进程是不可等待的,所以我们不能简单地把等待和异步放在上面。

    有点像“

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