<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>开始、暂停、停止</title> </head> <body> <button id="start">Start</button> <button id="pause">Pause</button> <button id="stop">Stop</button> <script> let time = 0 function promise(ms) { return new Promise(function (resolve, reject) { setTimeout(function () { time++; if (time > 10) { time = 0; reject("time out:" + time) } else { resolve(time) } }, ms || 2000) }) } let arr = []; for (let i = 0; i < 11; i++) { arr.push(promise); } let flag = true; function testPause() { return arr[time](2000) .then(function () { if (flag) { } else { testPause() } }) .catch(function (reason) { console.error(reason) }) } document.getElementById("pause").onclick = function () { flag = true; } document.getElementById('start').onclick = function () { flag && testPause(); flag = false; } document.getElementById("stop").onclick = function () { flag = true; time = 0; } </script> </body> </html>