角度通用+;如何正确等待浏览器端的socket.io?

角度通用+;如何正确等待浏览器端的socket.io?,socket.io,angular7,server-side-rendering,Socket.io,Angular7,Server Side Rendering,我发现这个话题像: 我应该使用像if(isBrowserSide)这样的包装器的任何代码,这是正确的 我的问题是,在初始化组件时,我不知道如何正确地等待浏览器端可用的那一刻 我试过这样的方法: setTimeout(() => { if (isBrowserSide) { // do some code on window (bind events etc) } }, 2000) 问题是,即使站点被渲染,它仍然看不到窗口/浏览器端,例如延迟更大 其他尝试:

我发现这个话题像:

我应该使用像if(isBrowserSide)这样的包装器的任何代码,这是正确的

我的问题是,在初始化组件时,我不知道如何正确地等待浏览器端可用的那一刻

我试过这样的方法:

setTimeout(() => {
    if (isBrowserSide) {
        // do some code on window (bind events etc)
    }
}, 2000)
问题是,即使站点被渲染,它仍然看不到窗口/浏览器端,例如延迟更大

其他尝试:

setInterval(() => {
    if(isBrowserSide) {
        // do some code
    }
}, 3000)
在这种情况下,该端永远不会加载(为了完成,我使用setTimeout和递归函数以及布尔值得到了相同的结果,但看起来我无法用这种方式完成SSR,所以它是无限循环)


所以,请帮助我,我如何设置我的代码以完成SSR,然后如果是浏览器端,将任何事件绑定到窗口

看起来像任何组件中的ngAfterContentInit和ngAfterViewInit总是以true响应(isBrowserSide),关于使用setTimeout等有什么想法吗?如果不是的话,我就得用那个钩子,太奇怪了。。。甚至我的组件也看到了isBrowserSide,当我想重新分配socket服务中的房间时,isBrowserSide仍然是false。。。我讨厌SSR的废话。。。有人在为类似的问题挣扎吗?