Node.js和socket.on数据
我对node.js中的数据和socket.io有问题。是否可以在socket.on函数外部获取数据?例如:Node.js和socket.on数据,node.js,socket.io,Node.js,Socket.io,我对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++) {
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
var newdata=newarray();
$(文档).ready(函数(){
socket.on('Select',函数(数据){
//console.log(data.products[0][1]);
对于(i=0;i,在这种情况下必须使用回调函数,因为正在异步调用socket.on
例如,声明如下所示的函数:
function processData(newdata) {
console.log(newdata);
}
然后在套接字中。在('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);
});
});
函数processData(newdata){
console.log(newdata);
}
$(文档).ready(函数(){
socket.on('Select',函数(数据){
对于(i=0;iYea),可以声明一个全局外部变量,并使用外部使用的数据重新分配该变量,或将其传递到另一个函数中使用的方法中。“on”方法是一个在运行时调用的事件侦听器。因此,您需要对函数进行回调。这与console.logging在socket.on()中不一样吗回调?声明一个全局变量不是更好吗?当然,但我猜他想在这个函数之外处理它,因为某些原因。