我在获取下面的函数作为可用字符串返回时遇到一些问题?
我的代码是这样的:
app.factory('Urls', ['$http', function($http) {
var urls = {};
urls.getUrls = function () {
return $http.get('json/dataUrls.json');
}
return urls
}]);
app.factory('Emails', ['$http', 'Urls', function($http, Urls) {
var dataUrl = Urls.getUrls().then(function(response) {
return response.data.emails;
});
console.log(dataUrl);
var query = {};
query.getItems = function() {
return $http.get('json/emails.json');
};
return query;
}]);
下面是 console.log(dataUrl);
我想要获取的是值字符串的结果...
f {$$state: {…}}
$$state
:
status
:
1
value
:
"json/emails.json"
__proto__
:
Object
__proto__
:
Object
最佳答案
Urls.getUrls().then(...)
返回一个 Promise ( read more about this here ),这是一种数据类型,用于保存对异步获取的值的“引用”。因此,在 dataUrl
上运行 console.log
将返回一个对象,而不是字符串。
为了获取该值,您需要异步访问它。最好的方法是通过 promise chaining :
app.factory('Urls', ['$http', function($http) {
var urls = {};
urls.getUrls = function () {
return $http.get('json/dataUrls.json');
}
return urls
}]);
app.factory('Emails', ['$http', 'Urls', function($http, Urls) {
Urls.getUrls().then(function(response) {
return response.data.emails;
}).then(function(emails){
console.log(emails);
});
var query = {};
query.getItems = function() {
return $http.get('json/emails.json');
};
return query;
}]);
关于javascript - angularjs函数返回的数组是一个对象,而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47129594/