返回结果给外部函数

returning results to outer function

不太确定如何 return 将结果输出到外部函数,我想调用 getListOfUsers() 并获取 returned 结果列表

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

如果我 return 在地图之外,它显然 return 未定义,或者如果我在外面定义它并在内部启动它则为 null。 使用 promises 使我处于 return 位于 'then' 函数内的相同情况。这里的常见做法是什么?

看起来,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
});