Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js和socket.on数据_Node.js_Socket.io - Fatal编程技术网

Node.js和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++) {

我对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
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()中不一样吗回调?声明一个全局变量不是更好吗?当然,但我猜他想在这个函数之外处理它,因为某些原因。