2017-07-14 130 views
0

我目前正在嘗試編寫一些NodeJS(v6.11.0)代碼來與其他人交談,但是當我嘗試操縱數據時,我得到的答覆仍然處於未決狀態。代碼如下:NodeJS待定承諾

const { Etcd3 } = require('etcd3'); 
const client = new Etcd3(); 

function getMembers() { 
    return client.cluster.memberList() 
    .then(function(value) { 
     value.members.map(function(member) { 
     return member.name; 
     }); 
    }); 
}; 

console.log(getMembers()); 

當運行CLI輸出:

Promise { <pending> } 

我非常新的JavaScript,所以我敢肯定,我失去了一些東西,但說不出是什麼基於我迄今爲止的閱讀。

+0

是,getMembers憑藉。然後返回一個承諾返回一個承諾 –

+0

你想'getMembers()。然後(的console.log)'。你必須等待承諾才能實現! – Bergi

回答

3

該承諾未陷入懸而未決。 JavaScript是asynchronous language,這意味着console.log(getMembers());將在解決由getMembers函數返回的許諾之前執行。

如果你想登錄時getMembers功能得到解決,切換您console.log這個:

getMembers().then(console.log);