Отслеживание статуса действия
Контрол Controls/Pending позволяет отслеживать выполнение действий, которые должны быть завершены до начала текущего действия. Например, всплывающее окно должно быть закрыто только после сохранения/не сохранения измененных данных, которые содержит это всплывающее окно.
Завершение всех необходимых действия возвращает экземпляр класса Promise.
Регистрация пендинга
Метод registerPending имеет 2 аргумента: [promise, config]
.
promise
- пендинг будет отменен, когда Promise будет завершен.config
- это объект с параметрами:showLoadingIndicator
(Boolean) - показывать индикатор загрузки или нет (во время регистрации пендинга)onPendingFail
(Function) - будет вызвана при попытке завершить пендинг принудительно с помощьюfinishPendingOperations
.
Функция onPendingFail
имеет 2 аргумента:
forceFinishValue
дает дополнительную информацию о завершении Promise (берется из аргументаfinishPendingOperations
).resultPromise
- Promise, по завершению которого завершается пендинг.
Завершение пендинга
Метод finishPendingOperations позволяет отменить пендинг до того, как завершится Promise, переданный в registerPending. Используется, когда нужно показать окно для подтверждения сохранения введенных данных, если пользователь попытается закрыть окно, где эти данные введены.
Метод cancelFinishingPending отменяет Promise, который возвращен в finishPendingOperations. Например, когда всплывающее окно ожидает завершения пендингов перед закрытием, но запись не может быть сохранена из-за ошибок валидации.