2016-04-14 5 views
-2

Я пытаюсь загрузить карту Google JS на кнопку щелчка (а не включить в голову для оптимизации).Обеспечение порядка выполнения: javascript

 $.when(
      $.getScript("https://maps.googleapis.com/maps/api/js?v=3.17&libraries=places") 
       .done(function() { 
       console.log('loaded'); 
       }) 
     ) 
     .then(_getCurrentLocation()) 
     .then(_lookForLatLang()) 

getCurrentLocation - это не что иное, как объект геолокации, который поддерживает браузер, основываясь на обратном поиске.

Я хочу строго следовать порядку выполнения файлов Javascript, но это не идеально. Я могу увидеть вывод getCurrentLocation FIRST &, затем getScript-журнал.

Что случилось со сценарием?

+0

'getScript' возвращает обещание. Вам не нужно '$ .when'. – SLaks

+0

Проверьте свою консоль на наличие ошибок (нажмите F12). Я уверен, что вы увидите некоторые вещи, которые помогут объяснить, почему он не работает. –

ответ

2

Использование обратного вызова:

$.getScript("https://maps.googleapis.com/maps/api/js?v=3.17&libraries=places") 
 
    .done(function() { 
 
     console.log('loaded'); 
 
    }, function() { 
 
     (_getCurrentLocation()); 
 
     (_lookForLatLang()); 
 
    });

+0

Почему дополнительные парсеры вокруг ваших вызовов функций? '(_getCurrentLocation())' может быть просто '_getCurrentLocation()'. – jfriend00

3
.then(_getCurrentLocation()) 

Вы просто называется _getCurrentLocationсразу и передал возвращаемое значение then() (так же, как и любой другой вызов функции).

Вы хотите передать функцию самостоятельно.

+0

Почему вы не показываете правильный код, а не только выделяете неправильный код? – jfriend00

+0

@ jfriend00: Потому что я хочу, чтобы учителя учились понимать, а не копировать код из ответов StackOverflow. – SLaks

+0

Извините, но я не покупаю. Я думаю, что другие ответы, которые показывают правильный код, - это лучшие ответы. Текст, объясняющий эту проблему, которую, по-видимому, понимает ОП, также дает ответ лучший ответ, но не за счет того, что на самом деле не отображается правильное решение. – jfriend00

1

$.getScript("https://maps.googleapis.com/maps/api/js?v=3.17&libraries=places") 
 
    .done(function() { 
 
    console.log('loaded'); 
 
    _getCurrentLocation(); 
 
    _lookForLatLang(); 
 
    });

Смежные вопросы