UYOU
需要对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])