我在node.js中遇到数据和socket.io的问题。可以在socket.on函数之外获取数据吗?例如:
var newdata=new Array();
$(document).ready(function(){
socket.on('Select', function(data){
//console.log(data.products[0][1]);
for(i=0; i<data.products[0].length; i++)
{
newdata.push(data.products[0][i]);
}
console.log(newdata); //array with objects
});
console.log(newdata); //undefined - here i want to get data
答案 0 :(得分:2)
在这种情况下你必须使用回调函数,因为socket.on
是异步调用的。
例如,声明一个这样的函数:
function processData(newdata) {
console.log(newdata);
}
然后在socket.on('Select', function (data) { ... });
内,您可以拨打processData(newdata)
,如下所示:
function processData(newdata) {
console.log(newdata);
}
$(document).ready(function(){
socket.on('Select', function(data){
for(i=0; i<data.products[0].length; i++)
{
newdata.push(data.products[0][i]);
}
processData(newdata);
});
});