我在使用以下代码段时遇到问题。我的init方法需要在initializeMapp()和geoListen()运行之前运行并完成getLocation()函数。我将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();
})
}
答案 0 :(得分:0)
您可以让getLocation
函数接受回调并在getLocation
完成后执行
getLocation = function(cb1, cb2) {
// when done
cb1()
cb2()
}
function init() {
getLocation(initializeMap, geoListen)
}
或者您可以传递一组回调引用并在getLocation
中循环遍历它们并调用它们
或者你可以使用Q.js并从getLocation