如何在JavaScript中组合函数调用?
我目前正在开发一个WebSocket。为此,我创建了一个JavaScript类。在这个类中,我有两个方法:如何在JavaScript中组合函数调用?,javascript,Javascript,我目前正在开发一个WebSocket。为此,我创建了一个JavaScript类。在这个类中,我有两个方法:subscribe()和bind()。第一个方法订阅一个频道,下一个方法应该监听它 但当我这样调用我的方法时: let socket = new CustomWebSocket(); socket.subscribe("my-channel").bind("my-event", function (response) { console.log(response); }); 我在
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);
}
}
}
我做错了什么?它认为它可以这样工作…您返回的是
channelName代码>从订阅。因此,您实际上是在channelName
上调用bind
要能够在subscribe
的返回值上调用bind
,您需要从subscribe
返回self
或this
,返回channelName代码>从订阅。因此,您实际上是在channelName
上调用bind
要能够对subscribe
的返回值调用bind
,您需要从subscribe
socket.subscribe(“我的频道”)返回self
或this
;socket.bind()代码>-您没有流畅的界面。socket.subscribe(“我的频道”);socket.bind()代码>-您没有流畅的界面。