版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

AsyncTaskManager.d.ts 1.2 KiB

1 год назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /// <reference types="node" />
  2. /**
  3. * Handles async tasks.
  4. */
  5. export default class AsyncTaskManager {
  6. private static taskID;
  7. private runningTasks;
  8. private runningTimers;
  9. private queue;
  10. /**
  11. * Returns a promise that is fulfilled when async tasks are complete.
  12. * This method is not part of the HTML standard.
  13. *
  14. * @returns Promise.
  15. */
  16. whenComplete(): Promise<void>;
  17. /**
  18. * Ends all tasks.
  19. *
  20. * @param [error] Error.
  21. */
  22. cancelAll(error?: Error): void;
  23. /**
  24. * Starts a timer.
  25. *
  26. * @param timerID Timer ID.
  27. */
  28. startTimer(timerID: NodeJS.Timeout): void;
  29. /**
  30. * Ends a timer.
  31. *
  32. * @param timerID Timer ID.
  33. */
  34. endTimer(timerID: NodeJS.Timeout): void;
  35. /**
  36. * Starts an async task.
  37. *
  38. * @param abortHandler Abort handler.
  39. * @returns Task ID.
  40. */
  41. startTask(abortHandler?: () => void): number;
  42. /**
  43. * Ends an async task.
  44. *
  45. * @param taskID Task ID.
  46. */
  47. endTask(taskID: number): void;
  48. /**
  49. * Returns the amount of running tasks.
  50. *
  51. * @returns Count.
  52. */
  53. getTaskCount(): number;
  54. /**
  55. * Returns a new task ID.
  56. *
  57. * @returns Task ID.
  58. */
  59. private newTaskID;
  60. }