Guest User

Untitled

a guest
Dec 10th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. interface Zone {
  2. /**
  3. * Родительская зона
  4. */
  5. parent: Zone;
  6. /**
  7. * Название зоны (используется для дебагинга)
  8. */
  9. name: string;
  10. /**
  11. * Возвращает значение ассоциированное с ключом
  12. *
  13. * Если в свойствах текущей зоны нет такого ключа, то зона будет искать в родителе
  14. */
  15. get(key: string): any;
  16. /**
  17. * Если у нас несколько зон, то мы можем искать нужную нам зону через ключ,
  18. * который мы можем определить в `properties`, этот метод работает рекурсивно
  19. */
  20. getZoneWith(key: string): Zone;
  21. /**
  22. * Используется для создания дочерней зоны
  23. */
  24. fork(zoneSpec: ZoneSpec): Zone;
  25. /**
  26. * Оборачивает колбек в новую функцию, которая восстановит текущую зону после вызова
  27. */
  28. wrap<F extends Function>(callback: F, source: string): F;
  29. /**
  30. * Вызывает колбек в нужной зоне
  31. */
  32. run<T>(callback: Function, applyThis?: any, applyArgs?: any[], source?: string): T;
  33. /**
  34. * Вызывает колбек в нужной зоне в `try-catch`
  35. */
  36. runGuarded<T>(callback: Function, applyThis?: any, applyArgs?: any[], source?: string): T;
  37. /**
  38. * Вызывает таск в нужной зоне (о тасках позже)
  39. */
  40. runTask(task: Task, applyThis?: any, applyArgs?: any[]): any;
  41. /**
  42. * Запланировать микротаск
  43. */
  44. scheduleMicroTask(source: string, callback: Function, data?: TaskData, customSchedule?: (task: Task) => void): MicroTask;
  45. /**
  46. * Запланировать макротаск
  47. */
  48. scheduleMacroTask(
  49. source: string,
  50. callback: Function,
  51. data?: TaskData,
  52. customSchedule?: (task: Task) => void,
  53. customCancel?: (task: Task) => void
  54. ): MacroTask;
  55. /**
  56. * Запланировать событийный таск
  57. */
  58. scheduleEventTask(
  59. source: string,
  60. callback: Function,
  61. data?: TaskData,
  62. customSchedule?: (task: Task) => void,
  63. customCancel?: (task: Task) => void
  64. ): EventTask;
  65. /**
  66. * Запланировать существующий таск
  67. */
  68. scheduleTask<T extends Task>(task: T): T;
  69. /**
  70. * Позволяет зоне перехватить таск, который отменили
  71. */
  72. cancelTask(task: Task): any;
  73. }
Add Comment
Please, Sign In to add comment