You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

setImmediate未定义致ID无法获取复制的替代方案咨询

问题解决:setImmediate未定义导致ID无法获取与复制

问题现象

  • 控制台抛出错误:Uncaught (in promise) ReferenceError: setImmediate is not defined
  • Options.jsx中打印的me值为空,点击"Copy Your ID"按钮无法复制ID到输入框,无法进行后续搜索操作

问题根源

你在SocketContext.js的socket.on('me')回调里写错了函数名:原本应该调用React状态更新函数setMe来存储socket返回的ID,却误写为setImmediate。setImmediate是Node.js或旧版浏览器的API,现代前端环境不支持,同时也完全不符合你的业务逻辑。

修复步骤

  1. 修正SocketContext.js中的错误代码
    找到以下代码段:
socket.on('me', (id) => setImmediate(id));

替换为:

socket.on('me', (id) => setMe(id));
  1. 验证修复效果
  • 重启项目后,控制台不再出现setImmediate未定义的错误
  • Options.jsx中打印的me会正确显示socket返回的ID值
  • 点击"Copy Your ID"按钮可以正常将ID复制到剪贴板,粘贴到输入框后可启动搜索操作

补充说明

如果你的业务场景确实需要延迟执行代码(当前场景不需要),前端环境可以用setTimeout(() => {}, 0)替代setImmediate,但在这个ID获取的场景中,直接更新状态是最优解。

内容的提问来源于stack exchange,提问作者idil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 17:17:32