Мне интересно, возможно ли построить асинхронный интерфейс вокруг объекта webSocket, который по своей природе асинхронный.
Объект webSockect находится внутри класса / функции, которая публикует ряд методов: я хотел бы вызвать эти методы, отправить команду через websocket, дождаться ответа и вызвать стандартные методы как .then
или.catch
- мыслить как javascript Promise
.
function x() {
myWS.sendCmdA().then( function() { doSomething; });
}
function myWS(){
var ws = null;
this.open = function() {
ws = new WebSocket(....);
ws.open = function() { ... };
ws.onmessage = function () { ... };
}
this.sendCmdA = function () {
ws.send("ABCD");
}
}
Или лучше передать функцию (-и) обратного вызова при вызове, например
myWS.sendCmdA( fnOk, fnErr);
?