Я нашел все полезные сообщения/информацию о $ q, $ q.all и цепочке в целом, но я не нашел примеров моей точной проблемы, поэтому я Интересно, возможно ли то, что я хочу сделать. У меня есть ряд вызовов, которые мне нужно сделать, и каждый из них зависит от предыдущего, но есть шаг в середине, где серия распадается на несколько параллелей. Суть этого выходит что-то вроде этого:.цепочки нескольких вызовов http против цикла
call #1: get keyword (based on inputs)
call #2: with keyword, get list of items
call #3: with item ID#s, get item profiles
call #4: with data in profiles, get item images
(я знаю, я знаю, четыре звонка только за один смешно, не говоря уже об общем количестве вызовов шестнадцать, но это для прототипа не должен я просто должен доказать, что могу перейти к этому заключительному этапу с существующими данными/вызовами.)
Во всяком случае, это означает, что # 1 - это один вызов для всех ... и затем от # 2 , он разбивается, и я должен делать # 2, # 3 и # 4 для каждого другого ID #, который я получил от # 1. Я фыркнул с помощью jsonplaceholder. Он должен получить первый набор, затем выполнить следующие два вызова с полученными идентификаторами, один цикл на ID.
Я пробовал простой цикл (который Plunker говорит мне, что я не могу делать с ним функцию). Я попробовал angular.forEach (внутри $ scope.watch и за его пределами), но это не похоже, чтобы мне что-нибудь на все:
angular.forEach($scope.resultsb, function(value, key) {
console.log(key + ': ' + value);
$http.get('http://jsonplaceholder.typicode.com/users?id='+ value)
.then(function(res2){
$scope.data2 = res2.data;
var obj = {
title: $scope.results1[i].title,
id: $scope.data2[i].id,
username: $scope.data2.username
};
$scope.results2.push(obj);
Я думаю, что Foreach просто не пинать в правильно b/c он не может работать до тех пор, пока я не получу $ scope.results1 (результаты первого шага), но могу ли я связать вызов $ http с циклом?
Вы можете увидеть полную информацию (в ее текущей версии, которая может измениться с тех пор, как я продолжаю биться по ней) на . Я пытаюсь сделать то, что я пытаюсь сделать, или мне нужно делать это долго?
Нет, это просто дает мне результаты первого идентификатора. Я не уверен, где $ scope.Call loop - это цикл вообще, или он просто находит идентификатор в первом наборе результатов и нажимает только это? – kl02
это цикл, потому что как только он получает обратный вызов из запроса $ http, он снова вызывает себя, вы должны проверить консоль на наличие сообщений, может быть, вы узнаете, где проблема –