确保执行顺序:javascript
我试图通过点击按钮加载GoogleMapJS(而不是包含在优化的头部) getCurrentLocation只不过是一个地理位置对象,浏览器在完成反向查找的基础上支持该对象 我希望严格遵循Javascript文件的执行顺序,但这并不是理想的情况。我可以先看到getCurrentLocation的输出,然后是getScript日志 剧本怎么了确保执行顺序:javascript,javascript,google-maps,promise,jquery-deferred,Javascript,Google Maps,Promise,Jquery Deferred,我试图通过点击按钮加载GoogleMapJS(而不是包含在优化的头部) getCurrentLocation只不过是一个地理位置对象,浏览器在完成反向查找的基础上支持该对象 我希望严格遵循Javascript文件的执行顺序,但这并不是理想的情况。我可以先看到getCurrentLocation的输出,然后是getScript日志 剧本怎么了 .then(_getCurrentLocation()) 您只需立即调用\u getCurrentLocation,并将返回值传递给then()(就像任何
.then(_getCurrentLocation())
您只需立即调用\u getCurrentLocation
,并将返回值传递给then()
(就像任何其他函数调用一样)
您希望传递函数本身。使用回调:
$.getScript(“https://maps.googleapis.com/maps/api/js?v=3.17&libraries=places")
.done(函数(){
console.log('loaded');
},函数(){
_getCurrentLocation();
_lookForLatLang();
});代码>
$.getScript(“https://maps.googleapis.com/maps/api/js?v=3.17&libraries=places")
.done(函数(){
console.log('loaded');
_getCurrentLocation();
_lookForLatLang();
});
getScript
返回承诺。您不需要$。当时,检查您的控制台是否有错误(点击F12)。我相信你会看到一些有助于解释为什么它不起作用的东西。你为什么不显示正确的代码,而不是只突出显示错误的代码?@jfriend00:因为我想教人们理解,而不是从StackOverflow答案中复制代码。对不起,但我不相信。我认为显示正确代码的其他答案是更好的答案。解释这个问题的文本,希望OP能理解,也能使答案成为更好的答案,但不会以没有实际显示正确的解决方案为代价。为什么要在函数调用周围添加额外的参数(\u getCurrentLocation())
可以是\u getCurrentLocation()
。
.then(_getCurrentLocation())