用一个函数处理多个事件



我正在使用Websocket (javascript),它有以下事件:

    ctrlScope.conn.onerror = function() {
      ctrlScope.updateStatus();
    };
    ctrlScope.conn.onclose = function() {
      ctrlScope.updateStatus();
    };
    ctrlScope.conn.onopen = function() {
      ctrlScope.updateStatus();
    };

正如你所看到的,我正在使用这些事件更新聊天状态,但它看起来是重复的,有没有办法将所有这些Websocket事件合并在一起?

ctrlScope.conn[onError][onClose][onOpen] = function() {
   ctrlScope.updateStatus();
};

另外还有一个Websocket变量:readyState,它提供与事件相同的连接状态。这可以取代函数的麻烦,但$watch不起作用。

请帮忙:

我还没有试过这段代码,但理论上你可以这样写:

var handlers = ["onerror","onclose","onopen"];
for(var i=0;i<handlers.length;i++){
    ctrlScope.conn.[handlers[i]] = ctrlScope.updateStatus;
};

这是利用javascript使用点表示法(ctrlScope.conn.onopen)或数组表示法(ctrlScope.conn["onopen"])引用元素的能力

相关内容

  • 没有找到相关文章

最新更新