NodeJS等待承诺

时间:2017-07-14 11:03:21

标签: javascript node.js promise etcd

我目前正在尝试编写一些NodeJS(v6.11.0)代码来与之交谈,但是当我尝试操作数据时,我得到了回复,承诺仍然处于未决状态。代码如下:

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很新,所以我肯定我错过了一些内容,但根据我的阅读内容无法分辨出来。

1 个答案:

答案 0 :(得分:4)

承诺不会陷入未决状态。 JavaScript是asynchronous language,意味着console.log(getMembers());将在getMembers函数返回的承诺解决之前执行。

如果您想在getMembers功能解析后进行记录,请将console.log切换为:

getMembers().then(console.log);