I have the following function that loads the google maps api:
```
(defn load-google-maps-api []
(js/console.log "script element is " script)
(set! (.-src script)
"https://maps.googleapis.com/maps/api/js?key=AIzaSyD1r7IEMfQzY&callback=init_delivery_map")
(set! (.-defer script) true)
(set! (.-async script) true)
(set! (.-init-delivery-map js/window)
(fn []
(prn "setting delivery-map")
(reset! delivery-map
(js/google.maps.Map. (js/document.getElementById
"delivery-map")
{:center {:lat 37.0 :lng
-122.0}}))))
(.append (js/jQuery "head") script)
)
```
which I call when an event is triggered. However, the line ```(.append
(js/jQuery "head") script)``` in conjunction with the line. (set! (.-src
script)
"https://maps.googleapis.com/maps/api/js?key=AIzaSyD1r7IEMfQzY&callback=init_delivery_map")
``````
cause the error:
```
Uncaught (in promise) RangeError: Maximum call stack size exceeded
at Object.cljs$core$array_index_of [as array_index_of] (core.cljs:6592)
at Object.cljs$core$array_map_index_of [as array_map_index_of]
(core.cljs:6607)
at ni.eval [as cljs$core$ILookup$_lookup$arity$3] (core.cljs:6892)
at ni.eval [as get] (core.cljs:6822)
at ni.streetView_changed
(js?key=AIzaSyD1r7IwW4_MfQzY&callback=init_delivery_map&_=1592974955286:217)
at $d
(js?key=AIzaSyD1r_MfQzY&callback=init_delivery_map&_=1592974955286:63)
at ni._.O.set
(js?key=AIzaSyD1r7IEvvf6w8FlMfQzY&callback=init_delivery_map&_=1592974955286:181)
at ni.streetView_changed
(js?key=AIzaSyD1r7IEvMfQzY&callback=init_delivery_map&_=1592974955286:217)
at $d
(js?key=AIzaSyD1r7IEvvf6w8FlHu3k_hP_oJwW4_MfQzY&callback=init_delivery_map&_=1592974955286:63)
at ni._.O.set
(js?key=AI_MfQzY&callback=init_delivery_map&_=1592974955286:181)
```
Suggesting that the maximum call stack is less than what it should be.
Because the javascript version of this code doesn't give this error and
works:
```
function loadGoogleMapsApi() {
var script = document.createElement('script');
script.src =
'https://maps.googleapis.com/maps/api/js?key=AIzaSyD1r7IEvvf6w8FlHu3k_hP_oJwW4_MfQzY&callback=initDeliveryMap';
script.defer = true;
script.async = true;
window.initDeliveryMap = function() {
console.log("init map");
console.log("Element is ", document.getElementById("delivery-map"));
deliveryMap = new
google.maps.Map(document.getElementById("delivery-map"), {
center: { lat: 37.7749, lng: -122.4194 },
zoom: 8
});
};
document.head.appendChild(script);
}
```
--
Note that posts from new members are moderated - please be patient with your
first post.
---
You received this message because you are subscribed to the Google Groups
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojurescript/e246b83c-cd2c-49b5-84ed-3c6d1e8bf3f4n%40googlegroups.com.