gpt4 book ai didi

javascript - 用于多个连接的 DRY 解决方案?

转载 作者:行者123 更新时间:2023-11-28 19:01:21 26 4
gpt4 key购买 nike

我有多个通过套接字连接到外部服务器的连接。然而,每个人实际上都会做同样的事情。 DRY 解决方案是什么?

例如:

ami1ami2ami3 连接到 3 个服务器。

var ami1 = new require('asterisk-manager')('port','host1','username','password', true);
var ami2 = new require('asterisk-manager')('port','host2','username','password', true);
var ami3 = new require('asterisk-manager')('port','host3','username','password', true);

我必须对每个重复一遍

ami1.keepConnected();
ami2.keepConnected();
ami3.keepConnected();

每个人实际上都会做同样的事情。

ami1.on('response', function(evt) {
if () { }
if () { }
if () { }
});


ami2.on('response', function(evt) {
if () { }
if () { }
if () { }
});

ami3.on('response', function(evt) {
if () { }
if () { }
if () { }
});

最佳答案

将连接存储在数组中:

var ami = [
new require('asterisk-manager')('port','host1','username','password', true),
new require('asterisk-manager')('port','host2','username','password', true),
new require('asterisk-manager')('port','host3','username','password', true)
];

我们用一个循环来让他们活下去

for(var i=0;i<ami.length;i++)
ami[i].keepConnected();

(如果您多次调用它,您可以将其包装在函数 keepAllConnected 中)

并以同样的方式绑定(bind)事件

for(var i=0;i<ami.length;i++){
ami[i].on('response', function(evt) {
if () { }
if () { }
if () { }
});
}

关于javascript - 用于多个连接的 DRY 解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32477926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com