我有以下node.js函数调用和函数
var returned = checkCurrentProcesses()
returned.then(() => {
console.log(returned)
})
function checkCurrentProcesses() {
return new Promise(function(resolve, reject){
exec('pgrep -u user123 -x node -a', (err, cmdOutput, stderr) => {
if (err) {
reject({error:err})
}
else{
resolve({output:cmdOutput})
}
});
})
}
这成功地重新运行了我需要的数据,但是它以我不理解的方式返回了它。我期望得到作为对象的已解决条件的返回。但是,当我console.log(返回)时,输出看起来如下,并且数据是对象中的对象,并且我无法访问它。
Promise { { output: '26278 node nodeMasterServer.js list\n' } }
即使我简化了代码,返回的格式也相同。
function checkCurrentProcesses() {
return new Promise(resolve =>{
resolve({thisIs:"aTest"})
})
}
Promise { { thisIs: 'aTest' } }
是什么原因导致这种行为,该如何解决?
答案 0 :(得分:3)
您快到了,您需要这样将数据传递到then
回调:
var returned = checkCurrentProcesses()
returned.then((data) => { // can be any name you want
console.log(data) // the object you are expecting
})