如何使用 nodejs child_process exec 捕获 ENOENT
How to catch an ENOENT with nodejs child_process exec
我正在尝试在没有互联网连接的情况下运行以下代码。
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
我如何处理来自命令提示符的异常
const { error, stdout, stderr } = await exec(myExt);
这些进程不可等待,所以我们不能简单地在其上放置等待和异步。
相反,我不得不转换成承诺,然后在标准 await/async
中使用
类似于“
let result = await new Promise<boolean>(res=>{
exec(myExt,function(err,stdOut,stdErr)
{
// TO Work
res(true);
}
},rej=>{});
console.log(result); //True
我正在尝试在没有互联网连接的情况下运行以下代码。
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
我如何处理来自命令提示符的异常
const { error, stdout, stderr } = await exec(myExt);
这些进程不可等待,所以我们不能简单地在其上放置等待和异步。 相反,我不得不转换成承诺,然后在标准 await/async
中使用类似于“
let result = await new Promise<boolean>(res=>{
exec(myExt,function(err,stdOut,stdErr)
{
// TO Work
res(true);
}
},rej=>{});
console.log(result); //True