class Controls/Pending

Контрол, отслеживающий выполнение необходимых действий, которые должны быть завершены до начала текущего действия.

Текущее действие запрашивает экземпляр класса Promise, который будет завершен после того, как завершатся все необходимые действия.

Например, всплывающее окно должно быть закрыто только после сохранения/не сохранения измененных данных, которые содержит это всплывающее окно.

Pending - это зарегистрированное в текущем экземпляре класса Controls/Pending необходимое действие, которое должно завершиться до начала текущего действия.

Поэтому все пендинги должны быть завершены для разблокировки и запуска следующего действия.

Примечание

Controls/Pending может запросить подтверждение перед закрытием вкладки/браузера, если пендинг зарегистрирован.

Controls/Pending имеет собственный LoadingIndicator, который может отображаться во время завершения пендинга. Этот LoadingIndicator имеет параметры по умолчанию.

В момент, когда будет зарегистрирован первый пендинг с параметром showLoadingIndicator = true, LoadingIndicator отобразит индикатор.

В момент, когда последний пендинг с параметром showLoadingIndicator = true завершится, индикатор скроется.

Controls/Pending обрабатывает 2 события: registerPending и cancelFinishingPending.

registerPending - регистрация пендинга

registerPending имеет 2 аргумента: [promise, config].

promise - пендинг будет отменен, когда Promise будет завершен.

config - это объект с параметрами:

- showLoadingIndicator (Boolean) - показывать индикатор загрузки или нет (во время регистрации пендинга)

- onPendingFail (Function) - будет вызвана при попытке завершить пендинг (вызовы finishPendingOperations).

Функция помогает завершить Promise. Пользователь должен завершить Promise (второй аргумент) в этой функции.

Это может быть синхронное или асинхронное завершение.

onPendingFail имеет 2 аргумента - [forceFinishValue, resultPromise].

forceFinishValue дает дополнительную информацию о завершении Promise.

resultPromise - Promise, по завершению которого завершается пендинг. Мы должны завершить его в функции onPendingFail.

forceFinishValue берется из аргумента finishPendingOperations (finishPendingOperations дает дополнительную информацию о завершении).

Пользователь может использовать этот аргумент в своей собственной функции onPendingFail.

Например, если в пендинге зарегистрирована измененная запись и нам нужно сохранить изменения, по умолчанию мы можем запросить подтверждение сохранения.

Но forceFinishValue может завершаться принудительно без подтверждения сохранения.

cancelFinishingPending - отменяет Promise, который возвращен finishPendingOperations. Этот Promise никогда не завершится.

Полезно использовать, когда пендинг не может быть завершен сейчас, но будет завершен позднее другим способом.

Например, когда всплывающее окно ожидает завершения пендингов перед закрытием, но запись не может быть сохранена из-за ошибок валидации.

В этом случае, если мы не отменим Promise с помощью finishPendingOperations, всплывающеe окно будет закрыто позже, когда будут исправлены ошибки валидации.

Тогда окно закроется неожиданно для пользователя, который, возможно, не хотел его закрывать.

Опции

readOnly

Определяет, может ли пользователь изменить значение контрола.

(или взаимодействовать с контролом, если его значение не редактируется).

Control
theme

Название темы оформления. В зависимости от темы загружаются различные таблицы стилей и применяются различные стили к контролу.

Control

Поля

_styles

Массив имен нетемизированных стилей, необходимых контролу.

Все стили будут скачаны при создании

Control
_theme

Массив имен темизированных стилей, необходимых контролу.

Все стили будут скачаны при создании

Control

Методы

_afterMountprotected

Асинхронный хук жизненного цикла контрола. Вызывается сразу после установки контрола в DOM-окружение.

Control
_afterUpdateprotected

Асинхронный хук жизненного цикла контрола. Вызывается после обновления контрола.

Control
_beforeMountprotected

Хук жизненного цикла контрола. Вызывается непосредственно перед установкой контрола в DOM-окружение.

Control
_beforeUnmountprotected

Хук жизненного цикла контрола. Вызывается до удаления контрола.

Control
_beforeUpdateprotected

Хук жизненного цикла контрола. Вызывается перед обновлением контрола.

Control
_componentDidMountprotected

Синхронный хук жизненного цикла контрола. Вызывается сразу после установки контрола в DOM-окружение.

Control
_componentDidUpdateprotected

Хук жизненного цикла контрола. Вызывается синхронно после применения измененной верстки контрола.

Control
_getMarkup

Метод, который возвращает разметку для компонента

Control
_setInternalOptions

Метод задания служебных опций

Control
_shouldUpdateprotected

Определяет, должен ли контрол обновляться. Вызывается каждый раз перед обновлением контрола.

Control
activate

Активирует контрол.

Control
isCSSLoaded

Проверка загрузки стилей и тем контрола

Control
loadCSS

Загрузка стилей и тем контрола

Control
loadThemeVariables

Вызовет загрузку коэффициентов (CSS переменных) для тем.

Control
removeCSS

Удаление link элементов из DOM

Control

События

activated

Происходит при активации контрола.

Control
deactivated

Происходит при деактивации контрола.

Control
pendingsFinished

Происходит в момент, когда в Controls/Pending не останется пендингов.

(после того, как последний пендинг завершится).

FAQ

5/17/2021Красильников А.С.