我正在将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));
这种方法通常是在企业软件(至少在服务器端(中采用的,因为它允许您做一些事情:
- 扩展了第三方软件包以添加特定领域的逻辑
- 以一种使您的系统测试更容易的方式包装
- 仅在您不希望使用所有第三方软件包的人 的情况下,开发人员使用的功能