返回结果给外部函数
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
});
不太确定如何 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
});