角度繰り返しの多層での角度 $q.all の使用

ワンガン

私はこのコードを持っています

var final=[];
$http.get('/Scenarios/List/'+ id).success(function(resp){
    angular.forEach(resp, function(value, key){
        var scenario ={};
        scenario.data=[];

        angular.forEach(value.samples, function(b, i){
            $http.get('/sample/One/'+ b.id).then(function(result){
                var id= result.temp_id;
                var temp ={};
                $http.get('/a/list/'+ id).then(function(result){
                    temp.a=result;
                });
                $http.get('/b/list/'+ id).then(function(result){
                    temp.b-resutl;
                });
                scenario.data.push(temp);
            })
        });

        final.push(scenario);

    });          

}); 

console.log(final); //no value

基本的に、さらに解析するために「最終」データを取得しようとしたときに、空であることがわかりました。$q.all の使用法が欠落していることが原因で問題が発生している可能性があると思いますが、オンラインで多くのチュートリアルをチェックしましたが、私の場合、angular.forEach の繰り返し使用を解決するための $q.all の適切な使用法を理解できません。 、 二つあります。何かご意見は?

タンメイ

このように解決したいの$q.allですが、質問で正しく述べられているように、あなたが欠けていたものを使用しています。

var final = [];

$http.get('/Scenarios/List/'+ id).success(function(resp){
    processSamples(resp).then(function(final) {
        console.log(final)
    })
});  

function processSamples(resp) {
    var deferred = $q.defer();
    angular.forEach(resp, function(value, key){
        var scenario = {};
        var promises = [];
        scenario.data = [];

        angular.forEach(value.samples, function(b, i){
            promises.push($http.get('/sample/One/'+ b.id));
        });

        $q.all(promises).then(function(result) {
            angular.forEach(result, function(res, index) {
                var id= res.temp_id;
                var temp = {};
                var childpromises = [];
                childpromises.push($http.get('/a/list/'+ id));
                childpromises.push($http.get('/b/list/'+ id));
                $q.all(childpromises).then(function(res) {
                    temp.a = res[0];
                    temp.b = res[1];
                    scenario.data.push(temp);
                    if(result.length === index + 1) {
                        final.push(scenario);
                        if(resp.length === key + 1) {
                            deferred.resolve(final);
                        }
                    }
                })
            })
        })
    });
    return deferred.promise;
}

最上位のループが完了すると、返された promise がどのように解決されるかに注目してください。また、検証可能な例が提供されていなかったため、マイナーな間違いを残した可能性がありますが、少なくとも良いアイデアが得られるはずです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AngularJs $q.all の使用

分類Dev

角度$ q.allを使用したエラーの処理

分類Dev

Angular $ q.all()の問題

分類Dev

角度の$ q.all()はうまく解決されません

分類Dev

Qライブラリ(javascript)-Q.all()を使用したpromiseでのq.reject()の処理

分類Dev

anglejsは$ q.allで別の約束を返します

分類Dev

共依存の約束でAngularの$ q.allを使用する

分類Dev

`$ q.all`の代わりに` Observable`を使用する

分類Dev

角度の繰り返しエラー表示

分類Dev

アンダースコアの使用:q.choice_set.all()

分類Dev

Q.allをQ.allの中に入れるのは正しいですか?

分類Dev

1行ではなく2行の角度の繰り返し

分類Dev

テーブルでの角度の繰り返し

分類Dev

Q.allを非静的形式でどのように使用しますか?

分類Dev

Angular2のObservablesと同等の$ q.all()および$ q.race()

分類Dev

いつ、どのように角度$ qを使用しますか?

分類Dev

配列内の関数の1つがpromiseを返さない場合、$ q.allを使用できますか?

分類Dev

角度 $q.all の "then" からの return ステートメントを待ちます

分類Dev

角度2の場合の$ qに相当

分類Dev

Angular:オプションのpromiseに$ q.allを使用しますか?

分類Dev

$ q.allは、すべての値に対して未定義を返します

分類Dev

$ q.allの約束は決してその時にはなりません

分類Dev

AngularJS $ q.all-http呼び出しの合間に待つ

分類Dev

$ q.allは最初の呼び出しでのみ機能します

分類Dev

ネストされた配列の繰り返しの角度JS

分類Dev

角度のあるチャンクの繰り返し

分類Dev

角度の更新-モデルの-繰り返し

分類Dev

WebApi2 response.data からの角度の繰り返し更新

分類Dev

角度の繰り返しによりNaNが発生

Related 関連記事

  1. 1

    AngularJs $q.all の使用

  2. 2

    角度$ q.allを使用したエラーの処理

  3. 3

    Angular $ q.all()の問題

  4. 4

    角度の$ q.all()はうまく解決されません

  5. 5

    Qライブラリ(javascript)-Q.all()を使用したpromiseでのq.reject()の処理

  6. 6

    anglejsは$ q.allで別の約束を返します

  7. 7

    共依存の約束でAngularの$ q.allを使用する

  8. 8

    `$ q.all`の代わりに` Observable`を使用する

  9. 9

    角度の繰り返しエラー表示

  10. 10

    アンダースコアの使用:q.choice_set.all()

  11. 11

    Q.allをQ.allの中に入れるのは正しいですか?

  12. 12

    1行ではなく2行の角度の繰り返し

  13. 13

    テーブルでの角度の繰り返し

  14. 14

    Q.allを非静的形式でどのように使用しますか?

  15. 15

    Angular2のObservablesと同等の$ q.all()および$ q.race()

  16. 16

    いつ、どのように角度$ qを使用しますか?

  17. 17

    配列内の関数の1つがpromiseを返さない場合、$ q.allを使用できますか?

  18. 18

    角度 $q.all の "then" からの return ステートメントを待ちます

  19. 19

    角度2の場合の$ qに相当

  20. 20

    Angular:オプションのpromiseに$ q.allを使用しますか?

  21. 21

    $ q.allは、すべての値に対して未定義を返します

  22. 22

    $ q.allの約束は決してその時にはなりません

  23. 23

    AngularJS $ q.all-http呼び出しの合間に待つ

  24. 24

    $ q.allは最初の呼び出しでのみ機能します

  25. 25

    ネストされた配列の繰り返しの角度JS

  26. 26

    角度のあるチャンクの繰り返し

  27. 27

    角度の更新-モデルの-繰り返し

  28. 28

    WebApi2 response.data からの角度の繰り返し更新

  29. 29

    角度の繰り返しによりNaNが発生

ホットタグ

アーカイブ