Отслеживание статуса действия

Контрол 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. Например, когда всплывающее окно ожидает завершения пендингов перед закрытием, но запись не может быть сохранена из-за ошибок валидации.