客户代码:
var app = {
data: {
user: null
}
};
var client = {
connect: function () {
client.data.socket.on('connectCallback', function (obj) {
if (obj.userFound) {
app.data.user = obj.user;
return app.data.user;
}
});
/**
Other callbacks
**/
};
};
app.data.user
总是null
,我还尝试了第二个函数来更改变量。服务器返回的obj不是null
,我已经检查过了。
使用像var foo = client.data.socket.on
之类的代码没有用,因为foo是一个socket.io对象。传递自定义回调函数也没有用,因为我无法将它传递给socket.io回调。
我不会像有些人想的那样做一个ajax电话。
答案 0 :(得分:0)
app.data.user
总是null
,我还尝试了第二个函数来更改变量。服务器返回的obj
不是null
,我已经检查过了。
这意味着有两种可能性:
您在回调发生前之前检查app.data.user
,或
即使obj
不是null
,obj.userFound
也是假的,或者obj.user
是null
我的怀疑是#1:你在回调发生之前检查了价值,但是因为你没有在你尝试使用app.data.user
并获得null
的地方展示你的代码,我不能肯定地说。