В современной веб-разработке обещания очень полезны при работе с асинхронными потоками кода, чтобы избежать ада обратных вызовов. Обещание может быть выполнено, отложено (не разрешено / отклонено) или отклонено. Когда вы отклоняете обещание, к нему должен быть прикреплен catch метод. Увидеть ниже:

async1(function(){ … })
.then(async2)
.catch(function(e) {
    // Deal with any errors here
})

Однако о присоединении этого catch обработчика очень легко забыть, и, если он забыт, для объекта окна запускается событие unhandledrejection.

В настоящее время только Chrome запускает это событие, но этого достаточно, чтобы мы могли 1. обнаруживать такие события, запускаемые в тестовом наборе (с Siesta) и 2. определять, когда это событие запускается в производственной среде (с помощью RootCause). К сожалению, в настоящее время трассировка стека недоступна, но, надеюсь, она будет добавлена ​​в будущем. Давайте посмотрим, как мы можем обнаружить это событие, чтобы улучшить наш код!

1. Обнаружение необработанного события отказа в ваших тестах Siesta

Теперь с помощью Siesta вы можете обнаруживать и автоматически проходить тесты, если unhandledrejection запущен, просто загрузите нашу последнюю ночную сборку Siesta или дождитесь следующего официального выпуска. Вот и все, по умолчанию это обнаружение включено. После того, как мы обновили всю компанию Siesta, мы сразу же обнаружили проблему (без дополнительных усилий).

2. Обнаружение необработанных отклонений обещаний в вашей производственной онлайн-среде.

Чтобы обнаружить это в вашем производственном коде, вы можете использовать нашу службу отладки JS под названием RootCause. По умолчанию RootCause регистрирует ошибку при запуске unhandledrejection, и вы сможете использовать либо Live Replay, либо Video Replay, чтобы выяснить, где вам не хватает catch.

Мы надеемся, что эта функция поможет вам обнаружить больше ошибок на более раннем этапе процесса доставки кода. В первый час добавления этой функции в RootCause мы обнаружили неработающее обещание в нашей базе кода (снимок экрана выше).

Удачной отладки!

Оставить комментарий Отменить ответ

Первоначально опубликовано на www.bryntum.com.