일부 매개 변수를 사용하고 입력 배열을 통해 반복되는 서비스를 찾고 비어있는 항목을 찾아서 배열에 추가 한 다음 $ q 다음에 추가하는 서비스를 설계했습니다 .all 해결 그것은 나에게 빈 항목의 배열을 제공해야합니다.중첩 된 약속을 해결하는 데 도움이 필요합니다. 약속이 해결되지 않습니다.
입력 문제는 $ q.all가 해결되지 않습니다이다, 이제 항목
function getElements(inputs) {
var elements= [],
promise, whenPromise,
promises = [],
mainPromise = $q.defer();
if (inputs.length === 0) {
mainPromise.resolve(elements);
return mainPromise.promise;
}
angular.forEach(inputs, function (input) {
promise = getPromises(input);
whenPromise = $q.resolve(promise).then(function (response) {
$timeout(function() {
if (response.isEmpty) {
**//perform action with the response.data;**
}
});
}, function() {
});
promises.push(whenPromise);
});
$q.all(promises).finally(function() {
mainPromise.resolve(outdatedEntities);
});
return mainPromise.promise;
}
function getPromises(input) {
var deferred = $q.defer();
someSerivce.getItemDetails(input.Id).then(function (value) {
if (value === null) {
$timeout(function() {
deferred.resolve({data: input, isEmpty: true});
});
} else {
//have item locally, but need to see if it's current
input.isEmpty().then(function (isEmpty) {
$timeout(function() {
deferred.resolve({data: input, isEmpty: isEmpty});
});
}, function (error) {
deferred.reject(error);
});
}
});
return deferred.promise;
}
의 배열입니다. 모든 내부 약속이 해결 되더라도.
(가)에 도달이 코드는'경우 (response.isEmpty) {'약속의 각 하시나요? –
네,하지만 퍼팅 후 $ 타임 아웃 랩 – Dreamweaver
퍼팅 후 $ 타임 아웃 랩 - 무슨 뜻이야? –