如何在信号R中实现"on"方法?



我正在将SignalR与Last版本一起使用,我想改进on方法:

var connection = new signalR.HubConnection('/chat');
connection.on('greeting', msg => $log(msg));
connection.on('sayhello', msg => $log(msg));

我的目标看起来像这样:

connection
    .on('greeting', msg => $log(msg))
    .on('sayhello', msg => $log(msg));

我该怎么做?谢谢!

如果您使用的软件包不允许链接(这意味着它不会在on方法中返回实例(,则可以创建一个包装器以实现所需的内容。<<<<<<<<<<

class MyConnection {
    connection;
    constructor(connection) {
        this.connection = connection;
    }
    on(key, callback) {
        this.connection.on(key, callback);
        return this;
    }
}

现在像这样申请:

var myConnection = new MyConnection(connection);
myConnection.on('greeting', msg => $log(msg))
            .on('sayhello', msg => $log(msg));

这种方法通常是在企业软件(至少在服务器端(中采用的,因为它允许您做一些事情:

  1. 扩展了第三方软件包以添加特定领域的逻辑
  2. 以一种使您的系统测试更容易的方式包装
  3. 仅在您不希望使用所有第三方软件包的人
  4. 的情况下,开发人员使用的功能

最新更新