循环依赖示例

1
2
3
let a = {}
let b = { a }
a.b = b

经验分享

这样的循环依赖的对象,需要每次递归的时候保留上一次递归的层级。
并判断这次递归的内容中,有没有上一次的内容。
如果有的话,就直接返回上一次的内容就行了。中断了递归。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
* @param { object } obj
* @returns { object }
*/
const deepCopy = (obj, stack = []) => {
let target = null
if (typeof obj === 'object') {
if(stack.includes(obj)) {
return obj
} else {
stack.push(obj)
}
if (Array.isArray(obj)) {
target = []
obj.forEach(item => {
target.push(deepCopy(item, stack))
})
} else if (obj) {
target = {}
for (const [key, value] of Object.entries(obj)) {
target[key] = deepCopy(obj[key], stack)
}
} else {
target = obj
}
} else {
target = obj
}
return target
}
export default deepCopy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
* @param { object } obj
* @returns { object }
*/
const deepCopy = (obj) => {
let target = null
if (typeof obj === 'object') {
if (Array.isArray(obj)) {
target = []
obj.forEach(item => {
target.push(deepCopy(item))
})
} else if (obj) {
target = {}
for (const [key, value] of Object.entries(obj)) {
target[key] = deepCopy(obj[key])
}
} else {
target = obj
}
} else {
target = obj
}
return target
}

参考教程

见阿里云教程

防火墙配置问题

按照阿里云步骤走完,如果提醒远程连接计算机端口已关闭的话。可能是没开放端口。

需要更改防火墙的策略。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 查看防火墙当前配置
iptables -L -n

# 允许所有请求
iptables -P INPUT ACCEPT

# 清空默认所有规则
iptables -F

# 清空自定义所有规则
iptables -X

# 计数器置0
iptables -Z

# 允许127.0.0.1访问本地服务
iptables -A INPUT -i lo -j ACCEPT

# 允许访问外部服务
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

# 允许 ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# 开启 ssh 端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 开启 pptpd 端口
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

注意事项

哎嘿,昨天我搞了半天连不上。后来看了很多教程。才知道是我防火墙未放行。

很多网上的教程并未提及防火墙放行这一步步骤。

补充说明

每次如果更改了DNS和ip段配置后。都要运行这个命令来生效哦:

1
2
3
sysctl -p              # 生效配置
service iptables save # 保存防火墙配置
service iptables restart # 重启防火墙

如果更改,或添加pptpd账号。也是需要重启pptp的。

1
service pptpd restart  # 重启pptp

距离SRS还有12天大概的样子吧。如果不出意外的话。

说实话个人感觉挺慌的

术前紧张。肯定有的。害!!

但愿未来能够一切顺利吧

emj

没车票,黄牛票太贵。不太想回去过年。而且,最近的烦心事真的是好多。今年三月、四月可能要进行SRS🍥,要向公司请一个月假,就非常地头疼。

emj

0%