2024/07/18

LeetCode 2621. Sleep

/**
 * 暫停指定的毫秒數後返回一個 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
        )
    );
}