I'm trying to access a method from a class inside a assigned function to a websocket event, even if I call it with 'this' keyword, the function is unable to see it.
'use strict';
let clientSocket = undefined;
window.addEventListener("load", function() {
class ClientSocket {
id = undefined;
constructor(id) {
this.id = id;
}
printMsg = (obj) => {
if (obj === null || obj === undefined)
return;
if (this.isDebug) {
console.debug(obj)
}
}
conecta() {
const url = "ws://localhost:5000";
this.printMsg('URL: ' + url)
const socket = new WebSocket(url);
//on open
socket.onopen = function (event) {
this.printMsg("SOCKET OPEN"); //CAN'T ACCESS THIS METHOD EVEN WITH 'THIS'
}
this.socket = socket;
}
}
clientSocket = new ClientSocket(1);
});
On onopen socket event, the function can't access printMsg() method from ClientSocket.