Last active
July 27, 2019 16:30
-
-
Save arturovt/94f22d759701357f5d40b4a0a20e0d19 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
interface Zone { | |
/** | |
* Родительская зона | |
*/ | |
parent: Zone; | |
/** | |
* Название зоны (используется для дебагинга) | |
*/ | |
name: string; | |
/** | |
* Возвращает значение ассоциированное с ключом | |
* | |
* Если в свойствах текущей зоны нет такого ключа, то зона будет искать в родителе | |
*/ | |
get(key: string): any; | |
/** | |
* Если у нас несколько зон, то мы можем искать нужную нам зону через ключ, | |
* который мы можем определить в `properties`, этот метод работает рекурсивно | |
*/ | |
getZoneWith(key: string): Zone; | |
/** | |
* Используется для создания дочерней зоны | |
*/ | |
fork(zoneSpec: ZoneSpec): Zone; | |
/** | |
* Оборачивает колбек в новую функцию, которая восстановит текущую зону после вызова | |
*/ | |
wrap<F extends Function>(callback: F, source: string): F; | |
/** | |
* Вызывает колбек в нужной зоне | |
*/ | |
run<T>(callback: Function, applyThis?: any, applyArgs?: any[], source?: string): T; | |
/** | |
* Вызывает колбек в нужной зоне в `try-catch` | |
*/ | |
runGuarded<T>(callback: Function, applyThis?: any, applyArgs?: any[], source?: string): T; | |
/** | |
* Вызывает таск в нужной зоне (о тасках позже) | |
*/ | |
runTask(task: Task, applyThis?: any, applyArgs?: any[]): any; | |
/** | |
* Запланировать микротаск | |
*/ | |
scheduleMicroTask( | |
source: string, | |
callback: Function, | |
data?: TaskData, | |
customSchedule?: (task: Task) => void | |
): MicroTask; | |
/** | |
* Запланировать макротаск | |
*/ | |
scheduleMacroTask( | |
source: string, | |
callback: Function, | |
data?: TaskData, | |
customSchedule?: (task: Task) => void, | |
customCancel?: (task: Task) => void | |
): MacroTask; | |
/** | |
* Запланировать событийный таск | |
*/ | |
scheduleEventTask( | |
source: string, | |
callback: Function, | |
data?: TaskData, | |
customSchedule?: (task: Task) => void, | |
customCancel?: (task: Task) => void | |
): EventTask; | |
/** | |
* Запланировать существующий таск | |
*/ | |
scheduleTask<T extends Task>(task: T): T; | |
/** | |
* Позволяет зоне перехватить таск, который отменили | |
*/ | |
cancelTask(task: Task): any; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment