Node.js和socket.on数据

时间:2016-09-29 19:29:54

标签: 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++)
    {
        newdata.push(data.products[0][i]);

    }
       console.log(newdata); //array with objects
});


console.log(newdata); //undefined - here i want to get data

1 个答案:

答案 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);
    });
});