全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
12
返回列表 发新帖
楼主: qgx
打印 上一主题 下一主题

有偿寻求js大神【已解决】

[复制链接]
11#
发表于 2021-4-14 12:48:01 | 只看该作者
本帖最后由 MjjKing 于 2021-4-14 12:50 编辑
  1. let i = 0;
  2. msgs = [];

  3. msgs = ['123', '456', '789', 'abc'];
  4. setInterval(sendMsg, 5000);

  5. function sendMsg() {
  6.         if (i == msgs.length) {
  7.                 i = 0;
  8.                 console.log(msgs[i] + "****TRUE****");
  9.         } else {
  10.                 console.log(msgs[i] + "****FLASE****");
  11.         }
  12.         i++;
  13. }
复制代码


我这里运行正常

点评

qgx
大佬幸苦,改名解决了  发表于 2021-4-14 13:28
12#
发表于 2021-4-14 12:53:15 | 只看该作者
本帖最后由 纱雾 于 2021-4-14 12:55 编辑

我在node环境和浏览器环境执行你的代码都没有问题。会不会是你发消息是同步发的一直等待io然后setInterval炸了

点评

qgx
感谢,变量名问题  发表于 2021-4-14 13:29
13#
发表于 2021-4-14 12:54:42 | 只看该作者
  1. let msgIndex = 0
  2. let msgs = []

  3. main()

  4. function main() {
  5.   msgs = ['123', '456', '789', 'abc']

  6.   setInterval(sendMsg, 1000)
  7. }

  8. function sendMsg() {
  9.   console.log('msgIndex before', msgIndex)

  10.   if (msgIndex >= msgs.length) {
  11.     msgIndex = 0
  12.   }

  13.   // 开始执行发送消息逻辑
  14.   console.log("开始执行发送消息逻辑 =>", msgs[msgIndex])

  15.   msgIndex++

  16.   console.log('msgIndex after', msgIndex)
  17. }
复制代码

点评

qgx
感谢  发表于 2021-4-14 13:31
14#
发表于 2021-4-14 12:57:03 | 只看该作者
还是变量域的问题,
msg 定义是[]
你再main中修改,但是sendmsg中获取。你可能在命令行中可能能得到msg的修改值,但是 main函数没有返回 修改后的msg, 这里就可能出现错误。

点评

qgx
感谢  发表于 2021-4-14 13:33
15#
发表于 2021-4-14 13:03:14 | 只看该作者
搜一下loop,你网页上的其他js执行了i='loop'之类的语句
16#
发表于 2021-4-14 13:18:34 | 只看该作者
搜下其他地方有没有重新给i赋值了

点评

qgx
改变量解决了  发表于 2021-4-14 13:23
17#
 楼主| 发表于 2021-4-14 13:21:31 | 只看该作者

幸苦老哥了,我改变量名解决了,你的代码我再看看
18#
 楼主| 发表于 2021-4-14 13:30:39 | 只看该作者
phpznr 发表于 2021-4-14 13:03
搜一下loop,你网页上的其他js执行了i='loop'之类的语句

感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-12-29 00:01 , Processed in 0.145147 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表