Объединенный JS вызывает ошибку «невыполненное обещание» в Картах Google - PullRequest
0 голосов
/ 07 марта 2019

не очень опытный в JS, и я не совсем понимаю, что такое обещания.Но я сделаю все возможное, чтобы описать проблему.

На этой странице местоположения у меня есть встроенный JS для вывода карты Google.Довольно просто, и работает нормально, пока JS не будет соединен с плагином.

Так что странная часть в том, что когда выдается эта ошибка, приведенный ниже код вообще не выводится.Если я удаляю конкатенацию, она работает нормально.Это может быть проблема с плагином Wordpress (WP Rocket), а не проблема, специфичная для javascript.Я не уверен, надеясь на какие-либо советы.

Код:

        <script>function initMap() {
            var map = new google.maps.Map(document.getElementById('map'), {
                center: { lat: 41.559345, lng: -88.133326 },
                zoom: 16
            });
            //setMarkers(map);
          }

            function setMarkers(map) {

            marker = new google.maps.Marker({
                    position: {lat: 41.559345, lng: -88.133326},
                    map: map,
                     title: "Crest Hill",
                    //icon: customMarker
                });

                marker.addListener('click', function() {
                    map.setZoom(16);
                    map.setCenter(marker.getPosition());
                });
        }

        </script>

Ошибка:

Uncaught (in promise) Mc {message: "initMap is not a function", name: "InvalidValueError", stack: "Error↵    at new Mc (https://maps.googleapis.com/m…QpokXsxbUPOzocygFOXXXXX&callback=initMap:123:96"}

1 Ответ

0 голосов
/ 07 марта 2019

Как вы сказали, конкатенация превращает ваш initMap во что-то еще, что не является функцией. Кажется, он передается как обратный вызов в GoogleMapsAPI, и когда он пытается его выполнить, вы получаете сообщение об ошибке. Я бы попробовал следующее:

1) Извлеките встроенный скрипт в отдельный файл, возможно, с именем mapInitialiser.js.

2) Включите скрипт в ваш HTML с <script src="pathToYourScript/mapInitialiser.js"></script>

3) Выполнение шага 2 означает, что вам нужно будет учесть следующие последствия, описанные здесь: Как выполнить обратный вызов в Google Maps init в отдельных файлах веб-приложения

4) Исключить этот файл из объединения. Подробнее об этом вы можете прочитать в этой статье о WP-ракете .

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...