handler: function(item){
var info;
Database.getInfo(item, function(data){
if(data)
info = data.information
});
// Socket.io join handler
socket['user'].join(info)
}
现在我尝试让info
内的Database.getInfo
与套接字一起发送。
每当我在socket['user'].join(info)
的回调中使用Database.getInfo
时,我都会获得TypeError: Object #<Object> has no method 'join'
。
在外面,你可以猜到我得到一个空的var,因为回调在调用join()
之后设置变量。
如何从info
获取Database.getInfo
以使用套接字?
答案 0 :(得分:0)
数据库回调是异步的。稍后调用它,而handler
函数的其余部分继续运行。您只能在回调本身内使用data
结果,因为这是您知道信息实际可用时间的唯一位置。
handler: function(item){
Database.getInfo(item, function(data){
if(data) {
let info = data.information
// Socket.io join handler
socket['user'].join(info);
}
});
// any code placed here runs BEFORE the getInfo() callback runs
}