AngularJS:複数の非同期AJAX呼び出し

ElementaryStudentProgramming

複数のajax呼び出しを呼び出していますが、コードはすべてのajax呼び出しが実行された後にのみAPIに到達します。

Javascript:

 function test = function(){
        var entity = {};
        entity.Number = 1;
        appFactory.testPostCall(entity, 'ApiController/TestMethod');

        entity.Number = 2;
        appFactory.testPostCall(entity, 'ApiController/TestMethod');
    }

AppFactory

factory.testPostCall = function (number, appendUrl) {
        var q = $q.defer(); 

        $http({
            method: "POST",
            url: url + appendUrl,
            data: number
        }).success(function (data, status, headers, config) { 
            q.resolve(data);
        }).error(function (data, status, headers, config) {
            q.reject(data); 
        });
        return q.promise;
    }

API

[HttpPost]
        public Nullable<int> TestMethod(TestEntity entity)
        {
            return entity.Number;
        }

ブレークポイントで実行をコーディングする方法をトレースしました。test()関数を呼び出すと、以下が実行されます。

javascript -> appFactory
javascript -> appFactory
API
API 
//with the parameter Entity having the value Entity.Number = 2 for both API calls.

ブレークポイントをに配置してみました

entity.Number = 2; 

APIが呼び出されるまで待ちますが、コードはAPIが呼び出されるまで関数が終了するのを待っているようです。私はこれの振る舞いについてとても混乱しています、私は実際に次のようなものを期待しています:

javascript -> appFactory -> API //entity.Number = 1

javascript -> appFactory -> API //entity.Number = 2

チェーンはうまく機能しますが、両方を独立して実行する必要があり、何が起こっているのかを本当に理解したいと思います。

    entity.Number = 1;
            appFactory.testPostCall(entity, 'ApiController/TestMethod')
.then(function(data){
            entity.Number = 2;
            appFactory.testPostCall(entity, 'ApiController/TestMethod');
    });

ありがとうございました!!!

セバスチャン・ルナウルド

あなたはentity両方の推測であなたの関数に渡しています。何だと思う?JSでは、すべてのオブジェクトはコピーではなく参照によって渡されます。同様の質問がSO全体にあります。何か他のものを割り当てるときに、このオブジェクトが参照によって渡されないのはなぜですか?

期待する動作をするための2つの可能性があります。

  • クロージャを使用して、パラメータが希望どおりに渡されるようにすることができます
  • オブジェクトを浅くコピーできます

ただし、個人的には3番目のオプションに進みます。これは、オブジェクトをAPIに盲目的に渡さないことです。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

複数の非同期サービス呼び出し後のAngularJS関数

分類Dev

複数の非同期AJAX呼び出しのベストプラクティス

分類Dev

PHPで非同期に複数の関数呼び出し

分類Dev

複数の非同期呼び出しのブロック

分類Dev

C ++での複数の非同期呼び出し

分類Dev

XCTestCaseのsetUp()で複数の非同期呼び出しを待つ

分類Dev

Nodejs非同期mongodbfind()クエリ複数の呼び出し

分類Dev

複数の非同期待機呼び出しを行う方法

分類Dev

非同期関数の呼び出し

分類Dev

複数のajax呼び出しが非同期で機能しない(TTFBが遅い)

分類Dev

非同期関数の複数の呼び出しを並列化します

分類Dev

非同期関数を返すpromise内の複数のresolve()呼び出し

分類Dev

AngularJsで同期的に複数のhttp呼び出しを行う

分類Dev

RSVP.js-配列に対する複数の非同期関数呼び出し

分類Dev

mongolabへの複数の非同期呼び出しの実行が失敗する

分類Dev

複数の非同期/待機呼び出しの実行を高速化

分類Dev

複数の非同期呼び出し後のコールバック?

分類Dev

複数の非同期呼び出しの応答を返す方法は?

分類Dev

呼び出しの間に一時停止する複数の非同期呼び出し

分類Dev

非同期関数を呼び出す複数のガード

分類Dev

複数の非同期http呼び出しをサブスクライブする

分類Dev

1行に複数のawait`s(ネストされた非同期呼び出し)

分類Dev

複数のdb呼び出しを処理する非同期タスク

分類Dev

同期関数内の非同期呼び出し

分類Dev

非同期としてのAjax呼び出し

分類Dev

Laravel / PHPでのajax呼び出しへの非同期応答

分類Dev

Javaで非同期関数呼び出し

分類Dev

非同期関数呼び出し

分類Dev

promiseとdeferを使用したangularJSでの同期および非同期呼び出し

Related 関連記事

  1. 1

    複数の非同期サービス呼び出し後のAngularJS関数

  2. 2

    複数の非同期AJAX呼び出しのベストプラクティス

  3. 3

    PHPで非同期に複数の関数呼び出し

  4. 4

    複数の非同期呼び出しのブロック

  5. 5

    C ++での複数の非同期呼び出し

  6. 6

    XCTestCaseのsetUp()で複数の非同期呼び出しを待つ

  7. 7

    Nodejs非同期mongodbfind()クエリ複数の呼び出し

  8. 8

    複数の非同期待機呼び出しを行う方法

  9. 9

    非同期関数の呼び出し

  10. 10

    複数のajax呼び出しが非同期で機能しない(TTFBが遅い)

  11. 11

    非同期関数の複数の呼び出しを並列化します

  12. 12

    非同期関数を返すpromise内の複数のresolve()呼び出し

  13. 13

    AngularJsで同期的に複数のhttp呼び出しを行う

  14. 14

    RSVP.js-配列に対する複数の非同期関数呼び出し

  15. 15

    mongolabへの複数の非同期呼び出しの実行が失敗する

  16. 16

    複数の非同期/待機呼び出しの実行を高速化

  17. 17

    複数の非同期呼び出し後のコールバック?

  18. 18

    複数の非同期呼び出しの応答を返す方法は?

  19. 19

    呼び出しの間に一時停止する複数の非同期呼び出し

  20. 20

    非同期関数を呼び出す複数のガード

  21. 21

    複数の非同期http呼び出しをサブスクライブする

  22. 22

    1行に複数のawait`s(ネストされた非同期呼び出し)

  23. 23

    複数のdb呼び出しを処理する非同期タスク

  24. 24

    同期関数内の非同期呼び出し

  25. 25

    非同期としてのAjax呼び出し

  26. 26

    Laravel / PHPでのajax呼び出しへの非同期応答

  27. 27

    Javaで非同期関数呼び出し

  28. 28

    非同期関数呼び出し

  29. 29

    promiseとdeferを使用したangularJSでの同期および非同期呼び出し

ホットタグ

アーカイブ