在javascript中推迟另一个函数的最佳方法

时间:2013-10-29 16:50:55

标签: javascript jquery-deferred

我倾向于经常遇到这个问题,我的解决方案永远不会按照我想要的方式运行。 基本上,我想要一个功能等到前一个功能完全运行完毕 例如,我有一个gps定位函数,我希望在gps完成其任务后运行另一个函数。 我没有为此提供任何代码,因为我希望看到人们如何在不看我的情况下做到这一点,而是完全客观。

我正在使用phonegap,jquery-mobile和mkaing混合应用程序。

2 个答案:

答案 0 :(得分:0)

为什么你不能这样做?

func1();
func2();

如果它比这更复杂,也许你在问题的早期某个地方搞砸了。

答案 1 :(得分:0)

您可以使用$ .Deferred:

function locate() { 
   var d = $.Deferred();
   locationService.start().then(function(position) {
       d.resolve(position);
   });
   return d;
}

locate().then(function(position) {
    console.log('Latitude: ' + position.Latitude + ' - Longitude: ' + position.Longitude);
});

jQuery Api docs http://api.jquery.com/jQuery.Deferred/