yuandeabc 发表于 2022-5-23 09:11

问一个JS命令的逻辑关系问题

      有一个视频播放网页,我想让控制台每间隔一段时间,自动输出视频播放进度。我开始用的是setInterval命令,马上报错,提示说是视频时间那个参数没有取到。这个也好理解,视频都没开始播放,命令就已经执行,报错也正常。然后我就想用setInterval命令外面套层setTimeout命令,意思是一段时间之后,开始循环输出视频播放时间。结果发现仅仅执行了一次输出视频播放时间,就没有再输出播放时间了。
我的代码大体上就是这样了setTimeout(()=>{setInterval(bofangshijian(),30000);},10000); 请问这个问题怎么解决?

ryosga 发表于 2022-5-23 09:16

看起来逻辑上没啥问题, 会不会是bofangshijian函数内部实现的问题

yuandeabc 发表于 2022-5-23 09:22

ryosga 发表于 2022-5-23 09:16
看起来逻辑上没啥问题, 会不会是bofangshijian函数内部实现的问题

我也怀疑这个问题,所以我删除了function bofangshijian()中所有的内容,仅仅保留一个命令,console.log("正在监测视频是否播完")。但是,执行后,控制台仅仅输出一次,就没有再输出了。

junyo 发表于 2022-5-23 09:23

setTimeout(()=>{setInterval(bofangshijian,30000);},10000);
这样试试?

lcbreak 发表于 2022-5-23 09:30

一般播放器在视频没播放时理论上应该也能取到当前进度时间(为0);
视频你是用的第三方插件,还是原生的video?
一般插件或者原生都会提供相应的api,可以在视频播放时/时间更新时再调用获取当前时间函数,楼主最好还是贴上代码比看看。

HappyCrazy 发表于 2022-5-23 09:31

setTimeout(()=>{setInterval(()=>{console.log(2222222)},1000)},1000);

yuandeabc 发表于 2022-5-23 09:33

junyo 发表于 2022-5-23 09:23
setTimeout(()=>{setInterval(bofangshijian,30000);},10000);

非常感谢,你的这段代码完美执行了我的目的。原来,我多写了一个括号:handshake

zzp007 发表于 2022-5-23 09:36

不谈需求,楼上的几个大哥已经指出你的语法问题了

yuandeabc 发表于 2022-5-23 09:39

zzp007 发表于 2022-5-23 09:36
不谈需求,楼上的几个大哥已经指出你的语法问题了

嗯嗯,感谢楼上各位大哥的帮助!

junyo 发表于 2022-5-23 09:42

yuandeabc 发表于 2022-5-23 09:33
非常感谢,你的这段代码完美执行了我的目的。原来,我多写了一个括号

{:301_988:}哈哈,可以就行了
页: [1]
查看完整版本: 问一个JS命令的逻辑关系问题