Javascript AngularJS 1.0.7服务同步调用
我有一个AngularJS 1.0.7网络应用程序。在my service.js中,我有一个Javascript AngularJS 1.0.7服务同步调用,javascript,angularjs,Javascript,Angularjs,我有一个AngularJS 1.0.7网络应用程序。在my service.js中,我有一个SearcherService服务,它试图同步调用CurrencyService服务,但有些东西不起作用 .factory('SearcherService', function(CurrencyService, LocationService) { return { var currency = LocationService.getCurrency(); if
SearcherService
服务,它试图同步调用CurrencyService
服务,但有些东西不起作用
.factory('SearcherService', function(CurrencyService, LocationService) {
return {
var currency = LocationService.getCurrency();
if (currency == undefined) {
var currency = CurrencyService.getCurrency();
// do more thing after currency is got
}
};
})
.factory('CurrencyService', function(LocationService, Currency) {
return {
getCurrency: function() {
Currency.query(function success(result) {
var currencies = result;
LocationService.setCurrency(currency[0]);
return currency[0];
});
}
};
});
更新
实际上,stacktrace没有错误。但我的预期行为是在继续执行//do more things之前从CurrencyService.getCurrency获取货币值。我不知道为什么其他服务调用在服务方法调用完全执行之前不会继续,但我看不出有什么区别。请同时查看我的货币服务。
我想做这样的事情。但这是行不通的。它永远不会进入回调函数
var currency = LocationService.getCurrency();
if (currency == undefined) {
CurrencyService.getCurrency().then(function(result) {
currency = result;
// do more thigs
});
}
另请参见我的货币服务:
.factory('Currency',
function($resource, SERVER_URL){
var currencies =
$resource('http://' + SERVER_URL +'/:action', {action:'currencies'}, {
query: {method:'GET', isArray: true},
getConversionRate: {method:'GET', params:{action:'getConversionRate'}, isArray: false}
});
return currencies;
}
)
除了“有些东西不起作用”之外,你还能给我们什么吗?堆栈跟踪?预期行为和实际行为?在我看来不同步…Currency.query()看起来像什么?请查看我的更新@达朗瓦特