Попробуйте заставить функции Javascript работать синхронно
У меня проблемы со следующим фрагментом кода. Мой метод init должен запустить и завершить функцию getLocation(), прежде чем можно будет запустить initializeMapp() и geoListen(). Я rsvp.js связан как ресурс, но не совсем уверен, как реализовать. Я также попробовал метод jQuery $when.done. Любая помощь приветствуется.
Метод jQuery:
//initial page load method
function init() {
//get user location then builds map and listens to database
$.when(getLocation()).done.(function () {
//build map now that you have user location
initializeMap();
//Starts listening to database changes
geoListen();
})
}
Метод RSVP:
//initial page load method
function init() {
//get user location then builds map and listens to database
getLocation().then(function () {
//build map now that you have user location
initializeMap();
//Starts listening to database changes
geoListen();
})
}
1 ответ
Вы можете сделать свой getLocation
функция принимает обратные вызовы и выполняет их, когда getLocation
отделки
getLocation = function(cb1, cb2) {
// when done
cb1()
cb2()
}
function init() {
getLocation(initializeMap, geoListen)
}
или вы можете передать массив ссылок обратного вызова и перебрать их в getLocation
и позвони им
в качестве альтернативы вы можете использовать Q.js и вернуть обещание от getLocation