requestIdleCallback(myNonEssentialWork, { timeout: 2000 }); const tasks = [ () => { console.log("第一个任务"); }, () => { console.log("第二个任务"); }, () => { console.log("第三个任务"); }, ]; function myNonEssentialWork (deadline) { while ((deadline.timeRemaining() > 0 || deadline.didTimeout) && tasks.length > 0) { work(); } if (tasks.length > 0) requestIdleCallback(myNonEssentialWork); } function work () { tasks.shift()(); console.log('执行任务'); }