我经常遇到这个问题,我的解决方案从来没有真正按照我想要的方式工作。基本上,我希望一个功能等到前一个功能完全运行完毕。
例如,我有一个 gps 定位功能,我希望在 gps 完成其任务后运行另一个功能。我没有为此添加任何代码,因为我想看看人们是如何在没有看到我的情况下做到这一点的,因为这是完全客观的。
我正在使用 phonegap、jquery-mobile 和 mkaing 混合应用程序。
我经常遇到这个问题,我的解决方案从来没有真正按照我想要的方式工作。基本上,我希望一个功能等到前一个功能完全运行完毕。
例如,我有一个 gps 定位功能,我希望在 gps 完成其任务后运行另一个功能。我没有为此添加任何代码,因为我想看看人们是如何在没有看到我的情况下做到这一点的,因为这是完全客观的。
我正在使用 phonegap、jquery-mobile 和 mkaing 混合应用程序。
你为什么不能这样做?
func1();
func2();
如果它比这更复杂,也许你在问题的早期搞砸了。
您可以使用 $.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 文档http://api.jquery.com/jQuery.Deferred/