Я использую сервис автозаполнения карт Google для получения результатов поиска по запросу.
Пример кода здесь.
<html>
<head>
<meta charset="UTF-8">
<title>Navigation</title>
<script async defer src="https://maps.googleapis.com/maps/api/js?callback=initMap&libraries=places"></script>
</head>
<body>
<div id="map" class="after-hidden" style="height:100%;width:100%;"></div>
<script>
function initMap() {
try {
autoCompleteService = new google.maps.places.AutocompleteService();
autoCompleteService.getQueryPredictions({}, () => { });
} catch (e) {
console.log(e, "The error should be caught here. But it is not.");
}
}
</script>
</body>
</html>
Я включил библиотеку Google javscript в голову, которая предоставляет мне глобальную переменную Google.Когда библиотека gavascript google завершает загрузку, она вызывает функцию initMap.
Первый параметр метода getQueryPredictions предполагает ввод ключа (т. Е. Первый параметр должен быть похож на {input: 'India'}).Но я не передаю этот параметр ему.Поэтому я получаю эту ошибку на консоли.
Error: Missing parameter. You must specify input. places_impl.js:10:330
Теперь я ожидал, что блок catch в моей функции перехватит эту ошибку.Но ошибка не ловится.Может кто-нибудь объяснить, пожалуйста, почему это происходит и как я могу поймать эту ошибку.Я гуглю «Ошибки Javscript не обнаружены» и т. Д., Но ни одна из них не смогла объяснить эту ситуацию.