今天写代码的时候,踩到了一个坑,是菜鸟宝宝会犯的错误。
错误情况如下:
其实这个问题是我在引用的过程当中,初始执行的时候会产生循环。循环链如下:socket
-> Friends
-> Notification
-> socket
会发现,代码在执行的时候,会由于需要引入的包而在socket
处产生循环,所以就会发现,引入包居然引入不了!
解决方法:将require放到后续会调用到的一个回调地匿名函数中,这样就不会循环啦!
1 | const { SocketIOKoaSession } = require('../middlewares/session'); |
感觉还需要恶补一下执行栈的问题,才能更深刻地了解到这个解决解决措施的点。实质上是:
全局环境引入了socket
,然后后续回调函数当中再次调用 Friends
-> Notification
-> socket
就不会产生循环啦啦啦~~
后续我要在这里认认真真写一下我理解下的执行栈问题,虽然前面在笔记软件整理过(金鱼记忆总是忘记,特别是写代码的过程),但是感觉要在写一次才能更深刻理解。