2014-11-13 6 views
2

모든 http 관련 호출을 처리 할 수있는 팩토리를 만들었습니다. 몇 병렬 호출이 모든 약속 해상도가 혼합 점점 만들어지고있는 경우 내가, 호출을 만드는 중이라서 때, 이제

return { 
     get: function (opts) { 
      var deferred = $q.defer(); 
      var def = defaultOptions(HttpMethod.Get); 
      $.extend(def, opts); 

      $http({ method: 'get', url: config.remoteServiceName + def.url }).then(function (result, status, header) { 
       def.success(deferred, { data: result }); 
      }, function (data) { 
       def.error(deferred, data); 
      }); 

      return deferred.promise; 
     }, 
     post: function (opts) { 
      var deferred = $q.defer(); 
      var def = defaultOptions(HttpMethod.Post); 
      $.extend(def, opts); 

      $http.post(config.remoteServiceName + def.url, def.data).then(function (result) { 
       def.success(deferred, result); 
      }, function (data) { 
       def.error(deferred, data); 
      }); 

      return deferred.promise; 
     }, 
     remove: function (opts) { 
      var deferred = $q.defer(); 
      var def = defaultOptions(HttpMethod.Delete); 
      $.extend(def, opts); 

      $http({ method: 'delete', url: config.remoteServiceName + def.url }).then(function (result) { 
       def.success(deferred, result); 
      }, function (data) { 
       def.error(deferred, data); 
      }); 

      return deferred.promise; 
     } 
    }; 

: 그것은 다음과 같은 인라인 코드를 반환합니다. 다른 요청으로 한 요청에서 결과를 얻고 있습니다.

문제를 해결할 수 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

난 당신이 객체에게 당신이 –

+0

내가 정확하게 봉착 함수 중 하나를 호출 할 때마다 오버 라이딩으로 설정 마지막 콜백에 대해 여러 호출을 얻을 수 있도록 defaultOptions 항상 같은 개체를 반환 생각 같은 문제. 어떤 결의안? – hofnarwillie

+0

@hofnarwillie 문제는 병렬 호출이 아닙니다. 그것은 어딘가에 있었다. JS 모델은 Ajax 실행을 위해 잘 작동하지만 $ http에서도 아무런 문제가 없습니다. 우리는 WebAPI를 백엔드로 사용하고 있으며 일부 전역 필터에는 각 호출마다 변경된 상태가 있습니다. 따라서 데이터가 섞여있다. 클라이언트 측에서 문제가 없습니다. – sandeep

답변

0

호가 병렬 호출되지 않았습니다. 그것은 어딘가에 있었다. JS 모델은 Ajax 실행을 위해 잘 작동하지만 $ http에서도 아무런 문제가 없습니다. 우리는 WebAPI를 백엔드로 사용하고 있으며 일부 전역 필터에는 각 호출마다 변경된 상태가 있습니다. 따라서 데이터가 섞여있다. 클라이언트 측에서 문제가 없습니다.

감사합니다 모두

+0

어떻게 해결 했습니까? – manish

관련 문제