Мы работаем над тем, чтобы наш облачный JavaScript все более соответствоал стандартам! Начиная с августа 2018 года, отклоненные промисы без условия «catch» вызовут остановку облачного сценария с сообщением «Unhandled promise rejection». Это обновление ставит наш JavaScript-движок на один уровень с современными веб-браузерами и позволяет проще писать правильные сценарии. Отсутствие обработки исключения и отсутствие обработки отклоненного промиса теперь обрабатываются одинаково – мы уведомляем разработчиков о возможных проблемах в логике их кода.
До обновления в августе 2018 отклоненные верхнеуровневые промисы никак не обрабатываются нашим JS-движком:
AI.detectVoicemail(call)
.then(e => {/* Этот код выполнится, если определится автоответчик */});
// Но что произойдет, если автоответчик НЕ определится? Ничего. И это неправильно.
После обновления в августе 2018 код выше будет останавливать выполение JS-сценария в случае отклоненного промиса, причем разработчики увидят сообщение об ошибке. Ниже указан код, который явно указывает, что делать с отклоненным промисом:
AI.detectVoicemail(call)
.then(e => {/* Этот код выполнится, если определится автоответчик */})
.catch(e => {/* Этот код выполнится, если автоответчик НЕ определится */});