utils.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. * 工具类
  3. */
  4. class Utils {
  5. /**
  6. * 防抖函数
  7. * @param {Function} func 要执行的函数
  8. * @param {number} wait 等待时间
  9. * @returns {Function}
  10. */
  11. static debounce(func, wait) {
  12. let timeout;
  13. return function executedFunction(...args) {
  14. const later = () => {
  15. clearTimeout(timeout);
  16. func(...args);
  17. };
  18. clearTimeout(timeout);
  19. timeout = setTimeout(later, wait);
  20. };
  21. }
  22. /**
  23. * 安全地获取存储数据
  24. * @param {string} key
  25. * @returns {Promise}
  26. */
  27. static async getStorageData(key) {
  28. try {
  29. return new Promise((resolve) => {
  30. chrome.storage.local.get([key], (result) => {
  31. resolve(result[key]);
  32. });
  33. });
  34. } catch (error) {
  35. console.error("Storage access error:", error);
  36. return null;
  37. }
  38. }
  39. /**
  40. * 安全地设置存储数据
  41. * @param {string} key
  42. * @param {any} value
  43. * @returns {Promise}
  44. */
  45. static async setStorageData(key, value) {
  46. try {
  47. return new Promise((resolve) => {
  48. chrome.storage.local.set({ [key]: value }, resolve);
  49. });
  50. } catch (error) {
  51. console.error("Storage write error:", error);
  52. return false;
  53. }
  54. }
  55. }