角度通用+;如何正确等待浏览器端的socket.io?
我发现这个话题像: 我应该使用像if(isBrowserSide)这样的包装器的任何代码,这是正确的 我的问题是,在初始化组件时,我不知道如何正确地等待浏览器端可用的那一刻 我试过这样的方法:角度通用+;如何正确等待浏览器端的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) 问题是,即使站点被渲染,它仍然看不到窗口/浏览器端,例如延迟更大 其他尝试:
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的废话。。。有人在为类似的问题挣扎吗?