我的咖啡代码在不存在时建立websocket连接会返回错误:
socket = new WebSocket('ws://localhost:8080')
#=> Firefox can't establish a connection to the server at ws://localhost:8080/.
#=> socket = new WebSocket('ws://localhost:8080');
WebSocket的正常行为,但我希望WebSockets的工作方式如下:
# pseudocode
if websocket.establish_connection()
# do thing #1
else
do thing no.2
我想到try
... catch
但我觉得它很脏。还有其他方法可以排除故障吗?
答案 0 :(得分:1)
它实际上没有抛出错误,程序继续执行。它只是将错误(异步)记录到控制台。要处理连接失败,您可以绑定到套接字onerror
事件。
这样的事情可行:
function establishWSConnection(url) {
return new Promise(function(res, rej) {
var ws = new WebSocket(url);
ws.onerror = rej;
ws.onopen = function () {
ws.onerror = null;
res(ws);
}
});
}
establishWSConnection('ws://localhost:1234').then(function(ws) {
// do stuff
}).catch(function(err){
console.log(err);
});