如何在 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);

        }

    }

}

我做错了什么?它认为它可以这样工作......


偶然的你
浏览 130回答 1
1回答

MMMHUHU

你channelName;从subscribe. 因此,您实际上是在尝试bind调用channelName.为了能够调用bind的返回值subscribe,您需要 returnself或thisfrom subscribe。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript