氏ジョー:
私は現在のWebSocketを開発しています。そのために私は、JavaScriptのクラスを作成しました。このクラスでは、私は2つの方法をしました:subscribe()
とbind()
。第一の方法は、チャネルにサブスクライブし、次はそれに耳を傾ける必要があります。
しかし、私はこのように私のメソッドを呼び出すとき:
let socket = new CustomWebSocket();
socket.subscribe("my-channel").bind("my-event", function (response) {
console.log(response);
});
私は私のコンソールにエラーメッセージが出ています:
Uncaught TypeError: socket.subscribe(...).bind is not a function
これは私が私の内に私の関数を書いた方法ですCustomWebSocket
クラス:
subscribe(channelName) {
let self = this;
let subMsg = {
type: "subscribe",
channel: channelName
};
self.ws.send(JSON.stringify(subMsg));
return channelName;
}
bind(eventName, callback) {
let self = this;
self.ws.onmessage = function (event) {
let eventData = JSON.parse(event.data);
if (eventData.type === "channelMessage") {
callback(eventData.payload);
}
}
}
何が間違っていましたか?それはこのように動作することができます思いました...
Delenaマラン:
あなたは戻っているchannelName;
からsubscribe
。あなたが効果的に呼び出すしようとしているので、bind
上channelName
。
呼び出すことができるようにするにbind
の戻り値にsubscribe
、あなたは返す必要がself
またはthis
からsubscribe
。