これはおそらく非常に簡単ですが、私はJavascriptでプログラミングし、ソケットIOを使用することについてかなり新しいです。socket.on内の関数の値をグローバル変数に保存する方法は?
私はグローバル変数にプロセスが非常に単純である関数の中から値を与えたい:
var j;
function a(){
j=2;
}
a();
//j is now 2
私の問題は今、私は内部の機能を持っているsocket.onと呼ばれる方法を、持っていますこのようなことは、:
var j;
socket.on('news', function (p) {
j=p;
//in here, j is equal to p
});
//in here, j is NOT p, it is undefined.
は今、このケースでは、私は私のグローバル変数jは、pの値を持つようにしたいが、私は、関数の外でJを印刷するとき、それは未定義です。これは、最初の例のように、関数の外にa();
のようなものが必要なためです。 この場合、どうすればいいですか?
ありがとうございました。
ありがとうございます。問題は、このコードの私の目標は、これらの 'p'の値を持つコールバック関数から受け取ったデータをグラフにプロットすることです。 グラフを作成して更新するには、これらの 'p'値が必要です。問題は、もし私がsocket.onの中にグラフを描画すると、私が望まない 'p'の値を得るたびにそのグラフの新しいコピーが得られるということです。 私の目標は、socket.onメソッドの外側でグラフを作成することです(グラフを一度しか作成しません)。socket.onから値を更新します。 –
私はsocket.onの外で宣言する配列にこれらの 'p'点を保存しようとしましたが、配列がコールバック関数の外に受け取る値を保存しないと述べた理由から。これは私の問題です。 –
このリンクから問題のコードを参照できます:http://stackoverflow.com/questions/36697138/drawing-a-d3-realtime-line-chart-inside-socket-on-socket-io –