簡體   English   中英

Node.JS異步在返回的數據中顯示“ Promise”

[英]Node.JS async showing “Promise” in returned data

我有以下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' } }

是什么引起了這種現象,我該如何解決?

您快要准備好了,您需要將數據傳遞給then回調,如下所示:

var returned = checkCurrentProcesses()
    returned.then((data) => { // can be any name you want
        console.log(data) // the object you are expecting

    })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM