В большинстве библиотек Angular (и, в частности, ng-boostrap) есть способ открывать модалы на странице, которые запрещают пользователю делать что-либо до тех пор, пока они не будут «закрывать» модал или «отклонять» модал.В ng-bootstrap это выглядит следующим образом .
try {
let handle = this.nbgModal.open(...);
await handle.result;
// any code here won't run until after the modal is 'closed'
}catch(e){
// however, if the user 'dismisses' the modal then the catch block is ran
// so what happens in here if a real exception is thrown???
}
Ответ метода open(...)
позволяет вам использовать ключевые слова async/await
для ожидания взаимодействия с модалом.пользователь, прежде чем перейти к остальной части кода.
Если пользователь «закрывает» модель, Обещание разрешается, и мы, возможно, продолжаем использовать некоторый результат из модального режима.Однако, если пользователь «отклоняет» модальное значение, то мы отклоним Обещание, и код в блоке catch
запустится.
Так что теперь последний вопрос ... что произойдет, когда true исключение выдается в любом из кода в try
блоке выше?В этом примере мы проглотим исключение, и пользователь / разработчик никогда не узнает, так как консоль не выдаст ошибку.
Используйте обещания для модального режима, как это было так тяжело, что я видел в течение многих лет, поэтомуКаково ожидаемое решение для определения того, имеете ли вы дело с действительным бизнес-сценарием (например, увольнением) или исключением, которое выбрасывается из-за ошибки?
У меня есть решение, но я чувствую, что хотел быбороться против этих библиотек, чтобы создать другой сервис, который когда-либо отклоняет, если нет истинного исключения.Я скучаю по чему-то, что должно позволить мне сделать это?