下午好,
我是angularJS的新手,很抱歉,如果我问一个基本问题...... 但我有一个问题:
我有一个服务(Service2)从一个配置中获取一个字符串,我有另一个服务(Service1),它使用这个service2做更多的操作并返回一个URL(返回service2 + service1上的操作)。 。 但是,在函数initialize()中,它会跳过执行
Service2.getConfig().then(function (config) {
baseUrl = config.endPointUrl;
});
直接回归。网址不完整我需要什么... 您是否有任何关于如何在从service2执行所有操作后返回service1的建议?
这是我要做的基本代码
服务1
function Service1($resource, Service2) {
var resourceUrl = "";
var baseUrl = "";
initialize();
function initialize() {
Service2.getConfig().then(function (config) {
baseUrl = config.endPointUrl;
});
resourceUrl = baseUrl + "/event/history/period";
}
return $resource(resourceUrl, {}, {
'query': { method: 'GET', isArray: true }
});
}
服务2
function service2($resource, $log) {
var configService = {};
configService.getConfig = getConfigFromServer;
return configService;
function getConfigFromServer() {
var eventDataResource = $resource('api/service-config');
return eventDataResource.get().$promise;
}
}
答案 0 :(得分:0)
只有拥有数据后才需要返回。 getConfig()
似乎是异步调用。因此,将您的返回移至.then
回调是最简单的操作:
function Service1($resource, Service2) {
var resourceUrl = "";
var baseUrl = "";
Service2.getConfig().then(function (config) {
baseUrl = config.endPointUrl;
resourceUrl = baseUrl + "/event/history/period";
return $resource(resourceUrl, {}, {
'query': { method: 'GET', isArray: true }
});
});
}
答案 1 :(得分:-1)
搜索更多并向其他人询问此问题,我使用 $ http
找到以下解决方案{{1}}
感谢大家!现在我对承诺了解得更多:D