どのように私はJavaScriptで関数呼び出しを組み合わせることができますか?

氏ジョー:

私は現在の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あなたが効果的に呼び出すしようとしているので、bindchannelName

呼び出すことができるようにするにbindの戻り値にsubscribe、あなたは返す必要がselfまたはthisからsubscribe

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=392217&siteId=1
おすすめ