Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何向nodejs中的调用者通知连接错误?_Node.js - Fatal编程技术网

Node.js 如何向nodejs中的调用者通知连接错误?

Node.js 如何向nodejs中的调用者通知连接错误?,node.js,Node.js,我正在使用nodejs进行websocket连接()。我定义了一个connect方法来向调用者返回Promise。代码如下: connect = () => { return new Promise((resolve, reject) => { try { this.ws = new WebSocket(this.url, {}); this.ws.on("open", () => { console.lo

我正在使用
nodejs
进行websocket连接()。我定义了一个
connect
方法来向调用者返回
Promise
。代码如下:

connect = () => {
    return new Promise((resolve, reject) => {
      try {
        this.ws = new WebSocket(this.url, {});
        this.ws.on("open", () => {
          console.log("connected:", this.ws.readyState);
          resolve();
        });
        this.ws.on("close", function close() {
          console.log("disconnected");
          // how to throw error exception here?
        });

      } catch (err) {
        reject(err);
      }
    });
  };
如果连接失败,调用方将调用此方法并尝试重新连接

connect().then(() => {
    ...
}).catch(() => {
    // do reconnect
})
如果第一次连接失败,它可以正常工作。但是如果连接断开怎么办。如何让来电者知道发生了错误


我能想到的一个解决方案是创建一个
事件发射器
,通知调用方我们需要重新连接。但是,如果代码在我的项目中的许多地方使用,我必须将
事件发射器
传递到许多地方。有更好的方法吗?

我不清楚您使用的是哪个npm包,但如果是ws,您可以参考其自述文件的这一部分,并在必要时根据您的用例进行调整: