/** * 工具类 */ class Utils { /** * 防抖函数 * @param {Function} func 要执行的函数 * @param {number} wait 等待时间 * @returns {Function} */ static debounce(func, wait) { let timeout; return function executedFunction(...args) { const later = () => { clearTimeout(timeout); func(...args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); }; } /** * 安全地获取存储数据 * @param {string} key * @returns {Promise} */ static async getStorageData(key) { try { return new Promise((resolve) => { chrome.storage.local.get([key], (result) => { resolve(result[key]); }); }); } catch (error) { console.error("Storage access error:", error); return null; } } /** * 安全地设置存储数据 * @param {string} key * @param {any} value * @returns {Promise} */ static async setStorageData(key, value) { try { return new Promise((resolve) => { chrome.storage.local.set({ [key]: value }, resolve); }); } catch (error) { console.error("Storage write error:", error); return false; } } }