为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

鸿蒙传说 2019-03-21 22:19:21
如果我有abcd四个方法。这几个方法每个执行五秒,顺序随机不停的循环有方法做吗
查看完整描述

5 回答

?
烙印99

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)


查看完整回答
反对 回复 2019-04-10
?
UYOU

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])


查看完整回答
反对 回复 2019-04-10
?
杨魅力

TA贡献1811条经验 获得超6个赞

有啊 只需要随机给回调就行了!


查看完整回答
反对 回复 2019-04-10
  • 5 回答
  • 0 关注
  • 604 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号