异步错误如何捕获, websocket,
发布于 3年前 作者 ly1234444 2558 次浏览

新建一个websocket连接,它本身有on open ,on message, on close ,等方法. 程序执行时好像不会在这里停留等待完全准备好,假设在代码之后有一个console.log(‘after …’) 程序先打印after…然后执行on open 里面的代码,这样导致如果打印语句换成nodejsManagerWS .send(‘test’);会报错 not open.

如果建立连接失败程序会直接报错然后退出. 程序设计时应该怎么处理这种结构,是的连接失败的错误能捕获,且如果连接不上,不让打印提示信息 after…

function connect2NodejsManager(nodejsManagerAddress) { var nodejsManagerWS = new WebSocket(nodejsManagerAddress, {protocolVersion: 8, origin: 'http://websocket.org’}); nodejsManagerWS.on('open’, function() { try { // 上报统计信息 reportStatisticInfo(); } catch (err) { console.log('与nodejsManager建立连接时上报本进程的服务端口时发生异常!错误堆栈信息:’+err.stack); } }); nodejsManagerWS.on('message’, function(data, flags) { try { // 调用处理模块处理消息 processNodejsManagerMessage(nodejsManagerWS,JSON.parse(data)); } catch (err) { console.log(err.stack); } }); nodejsManagerWS.on('close’, function() { nodejsManagerWS = null; }); return nodejsManagerWS; }

console.log(‘after …’)

1 回复

额,自己顿悟了,可以加入一个 on error 函数,就可以避免直接错误退出.

回到顶部