abcd四个方法。这几个方法每个执行五秒,顺序随机不停的循环,如何实现

如果我有abcd四个方法。这几个方法每个执行五秒,顺序随机不停的循环有方法做吗

鸿蒙传说
浏览 605回答 5
5回答

烙印99

顺序随机是什么意思,这里提供个顺序的,你参考下function loop(fn){&nbsp; &nbsp; t = 5*1000&nbsp; &nbsp; var date = new Date()&nbsp; &nbsp; while(Date.now() - date < t){&nbsp; &nbsp; &nbsp; &nbsp; fn && fn()&nbsp; &nbsp; }}[a,b,c,d].forEach(loop)

UYOU

需要对abcd改造下:题主说每个方法执行5秒,那我就假设为:function a() {&nbsp; &nbsp; setTimeout(() => {&nbsp; &nbsp; &nbsp; &nbsp; // ok&nbsp; &nbsp; }, 5000);}这是我会加入一个callback给a(b, c, d)为参数, 并使用链式随机循环执行:const a = (fn) => {&nbsp; &nbsp; setTimeout(() => {&nbsp; &nbsp; &nbsp; &nbsp; // 执行其它&nbsp; &nbsp; &nbsp; &nbsp; console.log('a ok');&nbsp; &nbsp; &nbsp; &nbsp; fn();&nbsp; &nbsp; }, 5000);}// b, c, d与a类似// 随机链式执行const randomAsync = fns => {&nbsp; &nbsp; const len = fns.length;&nbsp; &nbsp; const next = () => fns[~~(Math.random() * len)](next);&nbsp; &nbsp; next();}使用randomAsync([a, b, c, d])

杨魅力

有啊 只需要随机给回调就行了!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript