당신이 맞다, 배열 작업을 위해서 - 먼저 .then
으로 약속을 풀고 반환 값이 또 다른 약속이라는 사실을 사용해야합니다. 예를 들어
: 당신은 예를 들어, 한 번 데이터를 가져 오는 방법을 만들 수 있습니다
// return if in a service method
var p = $http.get("http://jsonurl").then(function(result){
return result.filter(function(el){ return el.id === "foo"});
});
p.then(function(value){
// value is an array that contains only elements with property `id === "foo"`
});
:
var data = null;
function getData(){
return $q.when(data || $http.get("http://jsonurl")).then(function(val){
return data = val; // cache and return the result;
}); // either data, or cached data
}
을 지금을, 당신은 당신의 서비스에 getByPredicate를 만들 수 있습니다
function get(predicate){
return getData().then(function(arr){
return arr.filter(predicate);
});
}
다음 중 어떤 것을 할 수 있습니까?
get(function(el){ return el.id === "foo"; }).then(function(values){
//values is all the array elements with an id property whose value is foo.
});
참고 : JSON은 데이터 직렬화 형식입니다. JSON은 문자열로 항목을 직렬화하고 JS 객체 배열이있는 JS (및 다른 언어)로 역 직렬화하는 데 사용합니다. –