javascript - setInterval 奇怪的行为
问题描述
在探索 SSE 时,我发现在我的项目中发生了一些奇怪的事情。我的目标是在某个时间间隔内向浏览器发送一些数据,所以我决定使用该setInterval
函数,但我res.write
直接将其作为回调传递,而不是将其封闭在匿名中函数。这是我自己为地狱铺平道路的地方。因为它没有按预期工作,也没有提供任何有关该错误的线索。
这是我使用的代码setInterval(res.write,3000,"data:foobar\n\n")
我回来的错误是
msg._implicitHeader();
^
TypeError: msg._implicitHeader is not a function
at write_ (_http_outgoing.js:650:9)
at Timeout.write [as _onTimeout] (_http_outgoing.js:629:15)
at listOnTimeout (internal/timers.js:556:17)
at processTimers (internal/timers.js:497:7)
但是当将代码包装在匿名函数中时,它会按预期工作。我认为这个错误是由于内部使用的属性res.write
发生setInterval
冲突或由于传递给的参数绑定造成的setInterval
。我不确定。
有人给出它背后的技术细节。
解决方案
推荐阅读
- angularjs - 通过复选框检查多选问题的答案以显示正确答案
- git - 覆盖所有未提交的本地文件
- android - 如何解决 Android Studio 中的渲染问题?
- python - 使用单行从字符串python中过滤掉数字
- wordpress - 保持所有 WordPress 环境同步
- node.js - Electron --serve 因缺少 package.json 而失败
- javascript - 如何在 VScode 中显示导入的函数签名/jsdoc?
- java - Maven:“NoClassDefFoundError:com/jogamp/newt/event/KeyListener”
- neo4j - 使用密码投影的过程中不允许写入或令牌创建操作
- c# - 通过fast-mono-cgi运行asp.net,随机崩溃System.IO.DirectoryNotFoundException