5 回答

TA贡献1829条经验 获得超13个赞
顺序随机是什么意思,这里提供个顺序的,你参考下
function loop(fn){
t = 5*1000
var date = new Date()
while(Date.now() - date < t){
fn && fn()
}
}
[a,b,c,d].forEach(loop)

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