У меня есть код, который использует node.js и socket.io.Неопределенная переменная вне функции
Когда я написал этот код таким образом;
стороне сервера:
function display(width, height){
this.width = width * 2;
this.height = height * 2;
}
function position(x, y){
this.x = x;
this.y = y;
}
function initialize(){
for(var x = circlePosition.length; x < circleCount; x++){
circlePosition[x] = new position(Math.random() * (resolution.width - (-resolution.width)) + (-resolution.width), Math.random() * (resolution.height - (-resolution.height)) + (-resolution.height));
}
}
socket.on('display',
function(data) {
resolution = new display(data.width, data.height);
initialize();
io.sockets.emit('positioning', circlePosition);
});
на стороне клиента;
var position;
var resolution = {
\t \t width: 1366,
\t \t height: 666
\t };
\t socket.emit('display', resolution);
\t socket.on('positioning',
\t \t function(data){
\t \t \t position = data;
\t \t });
\t console.log(position); // <---
Переменная положение не определено, но если я использовать этот код на стороне клиента
var position;
var resolution = {
\t \t width: 1366,
\t \t height: 666
\t };
\t socket.emit('display', resolution);
\t socket.on('positioning',
\t \t function(data){
\t \t \t position = data;
console.log(position); // <---
\t \t });
\t
Он имеет значение. Почему я не могу использовать значение, отправленное с помощью функции socket.io вне функции?
Вы видите журнал данных? –
@MuhammadAli да, сначала набор кода был не определен, на втором наборе он имеет свое значение. – Rich
oh жаль, что я не заметил ваш второй последний фрагмент –