/**
* 暫停指定的毫秒數後返回一個 Promise
* @param {number} millis - 要暫停的毫秒數
* @return {Promise} - 一個 Promise,在指定毫秒數後 resolve,並返回經過的時間
*/
async function sleep(millis) {
// 獲取當前時間戳
const t = Date.now();
// 返回一個 Promise,該 Promise 在 setTimeout 完成後 resolve
return new Promise(resolve =>
// 設置定時器,暫停指定毫秒數後執行回調函數
setTimeout(() =>
// 在回調函數中,resolve Promise,並傳入經過的時間
resolve(Date.now() - t),
millis
)
);
}