私はjavascriptとES6が初めてです。 websocket
オブジェクトをsubscribe
に提供するコールバックにバインドするにはどうすればよいですか?私はこのような "グローバル"スコープからwebsocket
オブジェクトにアクセスしているということは間違っている/嫌に思います。矢印機能を使用してコールバックにオブジェクトをバインドする
const URL = 'echo.websocket.org';
const websocket = new WebSocket(`wss://${URL}`);
websocket.onmessage = (event)=>redux.dispatch(ChatActions.receiveMessage(event.data));
redux.subscribe(() => {
const { lastAction } = redux.getState();
switch (lastAction.type) {
case ActionTypes.POST_MESSAGE:
return websocket.send(lastAction.text);
default:
return;
}
});
arrow関数は、 'this'オブジェクトを周囲の環境から取得します。 –
たとえば、関数にパラメータとして渡すことができます。またはSingletoneを使用してWebsoketを取得することができます –
@Nina Scholz詳しくは、この文脈では「this」の意味を教えてください。 2行目で作成されたwebsocketオブジェクトがスコープ外に出る場合、それは私の矢印関数でも未定義になります。もしそうなら、どうすればこのことを避けることができますか?言い換えれば、それを私の矢印の機能にどのように結び付けますか?私のコードはそのままですか? – Baz