将结果返回到外部函数

时间:2015-03-25 23:44:05

标签: node.js design-patterns callback promise

不太确定如何将结果返回到外部函数,我想调用getListOfUsers()并获取返回的结果列表



function getListOfUsers() {
    userlist.getUsers(function(next, res) {
       var result = JSON.parse(res);
       var listOfUsers = result.members.map(function (mem) {
            return mem.name;
        });
    });
}




如果我返回到地图之外,它显然会返回undefined,如果我在外部定义它并在其中启动它,则返回null。 使用承诺让我处于相同的情况,我的回归在'然后'功能。这是什么常见做法?

1 个答案:

答案 0 :(得分:0)

貌似,userlist.getUsers是一个异步函数,这意味着你必须异步处理它并使用回调(通过promises,continuation或你喜欢的任何一种样式)将检索到的数据传递给其他代码。

function getListOfUsers(cb) {
    userlist.getUsers(function(next, res) {
       var result = JSON.parse(res);
       var listOfUsers = result.members.map(function (mem) {
           return mem.name;
       });
       cb(null, listOfUsers);
    });
}

然后不要这样做:

var users = getListOfUsers();
// do things with users

你会这样做:

getListOfUsers(function (err, users) {
    // do things with users
});