gpt4 book ai didi

javascript - NodeJS Windows 执行 promise 待定

转载 作者:行者123 更新时间:2023-12-02 22:09:25 25 4
gpt4 key购买 nike

我正在运行exec从计算机硬件获取 id。我正在尝试将 id 分配给变量 cpu_id ,以便稍后可以在脚本中的 http 请求参数中使用它。当控制台日志似乎总是输出Promise { <pending> }时而不是捕获的 id。

我尝试过等待和异步,但无法让事情按照应有的方式运行。任何帮助或指示将不胜感激。

function get_cpu_id() {
if (process.platform === "win32") {
return execShellCommand('wmic csproduct get UUID /format:list').then(function(std){
return std.replace(/\s/g, '').split("=")[1];
});
} else {
return execShellCommand('cat /proc/cpuinfo | grep Serial').then(function(std){
return std;
});
}
}

function execShellCommand(cmd) {
const exec = require('child_process').exec;

return new Promise((resolve, reject) => {
exec(cmd, (error, stdout, stderr) => {
if (error) {
console.warn(error);
}

resolve(stdout ? stdout : stderr);
});
});
}

let cpu_id = get_cpu_id();

console.log(cpu_id);

最佳答案

Exec 返回一个 Promise。尝试使用execSync :

const execSync = require('child_process').execSync;

function get_cpu_id() {
if (process.platform === "win32") {
return execSync('wmic csproduct get UUID /format:list').toString();
} else {
return execSync('cat /proc/cpuinfo | grep Serial').toString();
}
}


let cpu_id = get_cpu_id();

console.log(cpu_id);

关于javascript - NodeJS Windows 执行 promise 待定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59605786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com