angular.module('xx').factory('xxxx', ['Socket', 'xx',
function(Socket, xx) {
var onlineUsers = [] ;
Socket.on('online', function (info) {
……
onlineUsers = info.onlineUsers;
console.log('first online user:'+onlineUsers[0].username);//ok,此处可以正常打印onlineUsers的值
});
console.log('first online user:'+onlineUsers[0].username);//此时在打印onlineUsers的值,为什么为空了?
return {
onlineUsers: onlineUsers //此处已为空值
}
}
]);
\n```
1 回复
异步的问题, function (info) { …… onlineUsers = info.onlineUsers; console.log('first online user:’+onlineUsers[0].username);//ok,此处可以正常打印onlineUsers的值 } 这个function 是socket事件触发后,参数info才有值, console.log('first online user:’+onlineUsers[0].username);//此时在打印onlineUsers的值,为什么为空了? return { onlineUsers: onlineUsers //此处已为空值 } 这里 info 没有值,因为callback还没调用