AngularJS:多个异步AJAX调用

小学学生编程

我正在调用多个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;
    }

原料药

[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上也有类似的问题:为该对象分配其他内容时,为什么不通过引用传递该对象?

您有两种可能会出现预期的行为:

  • 您可以使用闭包来确保按需传递参数
  • 您可以浅复制对象

但是,我个人将采用第三种选择,即不要盲目地将对象传递给您的API。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

多个异步服务调用后的AngularJS函数

来自分类Dev

多个异步AJAX调用最佳实践

来自分类Dev

多个异步AJAX调用最佳实践

来自分类Dev

MVC C#多个异步Ajax调用

来自分类Dev

使用Backbone进行多个异步ajax调用后呈现视图

来自分类Dev

显示多个Ajax异步调用的等待Gif

来自分类Dev

完成多个异步调用后,AJAX会启动最终的异步调用

来自分类Dev

Ajax调用为异步

来自分类Dev

AJAX多个Ajax调用

来自分类Dev

Android多个异步调用

来自分类Dev

AngularJS:等待异步调用

来自分类Dev

Ajax 调用范围 $. 异步请求

来自分类Dev

并行调用异步函数的多个调用

来自分类Dev

如何在ReactJS中同时调用多个ajax(并获得异步结果)?

来自分类Dev

多个AJAX WebAPI异步调用到达随机延迟的控制器方法

来自分类Dev

如何处理来自带有回调的多个ajax异步调用的数据?

来自分类Dev

为什么在异步Ajax调用后AngularJs的视图没有更新?

来自分类Dev

异步ajax调用和Controller / ajax交互

来自分类Dev

异步ajax调用和Controller / ajax交互

来自分类Dev

等待多个Ajax调用

来自分类Dev

多个 AJAX 调用优化

来自分类Dev

Ajax调用angularJs调用方法

来自分类Dev

依次执行多个异步方法调用

来自分类Dev

检查多个异步Web服务调用的结果

来自分类Dev

等待多个异步调用完成?

来自分类Dev

如何返回多个异步调用的响应?

来自分类Dev

对mongolab运行多个异步调用失败

来自分类Dev

等待多个(异步)API 调用完成

来自分类Dev

PHP 异步调用多个函数