Node.js 将结果返回到外部函数

Node.js 将结果返回到外部函数,node.js,design-patterns,callback,promise,Node.js,Design Patterns,Callback,Promise,不太确定如何将结果返回到外部函数,我想调用getListOfUsers()并获取返回的结果列表 函数getListOfUsers(){ getUsers(函数(下一步,res){ var result=JSON.parse(res); var listOfUsers=result.members.map(函数(mem){ 返回mem.name; }); }); }似乎,userlist.getUsers是一个异步函数,这意味着您必须异步处理它,并使用回调(通过承诺、延续或您喜欢的任何样式)将检

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

函数getListOfUsers(){
getUsers(函数(下一步,res){
var result=JSON.parse(res);
var listOfUsers=result.members.map(函数(mem){
返回mem.name;
});
});

}
似乎,
userlist.getUsers
是一个异步函数,这意味着您必须异步处理它,并使用回调(通过承诺、延续或您喜欢的任何样式)将检索到的数据传递给其他代码

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
});

谢谢,这就是我想做var users=getListOfUsers()之类的事情的原因;是因为我只想触发该函数一次,即发出请求,将结果存储在变量中,如果变量有结果,则不再发出请求@JohnO'Donnell你当然可以这样做,只是依赖于用户初始值的所有代码都必须在回调上下文中完成