2016-07-02 1 views
0

Answerの値を返す関数を作成しようとしています。しかし、私はこの価値を引き出すことに問題があります。socket.io関数の値を取得しますか?

現在、サーバーからデータを取得してデータに格納しています。しかし、serverAnswer関数内でコンテンツを常にラップする必要がないように、この値をより簡単にしたいと思っています。これは可能ですか?

var serverAnswer = (function() { 
    var answer; 
    socket.on("server answer", function(data){ 
     answer = data.year; 
    }); 
    return function() { 
     alert(answer); 
    }; 
}()); 

serverAnswer(); 
console.log(answer); 

答えて

1

あなたは正確に同期した方法でそれを行うことはできません。しかし、あなたはその値をanswerにして、それをソケットコールバックから呼び出す関数を作成することができます。またはソケットコールバックはanswerの値を利用したいあなたの関数になります。

function doit(answer){ 
    // do something with answer 
} 

あなたは伝説の良い先生です。この

socket.on("server answer", function(data){ 
    answer = data.year; 
    doit(answer); 
}); 

またはこの

socket.on("server answer", doit); 
+0

を行うことができます。 socket.on( "server answer"、doit)とは何が違うのですか? ? –

+0

@factor_za 'doit'は、実際には最初に渡す関数です。私たちはちょうどそれを 'doit'と名づけ、それを外に置き、参照番号 –

+0

を使いました。私は最初の方法を使用し、今私の主な機能を通してそれを渡すことができます。ありがとう! –

関連する問題