【发布时间】:2015-02-10 06:36:37
【问题描述】:
我在 Node 中缺少一些简单的东西,我有一个需要导出的函数,并返回一个值,异步。我不确定如何在 Node 中让它在返回值之前“等待”,我显然被前端 javascript 和数据绑定宠坏了......
下面的代码不会等待用户取回数据(推送器是一个休息调用)所以它总是未定义的。
exports.getMembers = function(channel) {
var users;
pusher.get( { path: '/channels/'+channel+'/users', params: {} },
function( error, request, response ) {
if( response.statusCode === 200 ) {
var result = JSON.parse( response.body );
users = result.users;
return users;
}
else {
console.log(error);
}
}
);
//return users;
};
【问题讨论】:
-
您需要使用回调。请参阅关于客户端 Ajax 的 this answer,但异步概念是相同的,它解释了将异步值传递给其他代码的各种选项。
标签: node.js asynchronous pusher