2017-09-28 9 views
1

사용자에게 API에 대한 재발행 상태를 알리기 위해 eventlistener가 필요합니다.http 요청 응답을위한 이벤트 리스너

 switch (category) { 
      case 'B': 
       console.log('creating basis'); 
       break; 
      case 'B-T': 
       console.log('creating basis top'); 
       kladdService.create_B_T(order); 
       break; 
      case 'B-M-T': 
       console.log('creating basis, mellom, top'); 
       kladdService.create_B_M_T(order); 
       break; 
      case 'B-M-M-T': 
       console.log('creating basis'); 
       kladdService.create_B_M_M_T(order); 
       break; 

      case 'Mix_Minimum2B-M-T': 
       kladdService.create_Mix_Minimum2B_M_T(order); 
       break; 
      case 'Mix_Minimum2M-T': 
       kladdService.create_Mix_Minimum2M_T(order); 
       break; 
     } 
     console.log('order ble sent: '); 
     console.log(order); 
     //trenger en if her som venter på en http 200 response 
     var url = 'http://localhost:32605/api/Kladd/' + category; 
     console.log(url); 
     var xhr = new XMLHttpRequest(); 
     console.log(xhr.status); // 0 so either unsendt or opened 
     logService.info('prduktet har fått en ID'); 
    }; 

스위치 케이스는 정상적으로 작동하지만 처리 된 작성 메소드의 상태는 devtools의 네트워크 패널에서만 볼 수 있습니다.

저는 xhr 변수가 필요하다고 가정하고 xhr.status를 기반으로 결과를 사용자에게 알립니다. 여기

는 ID 가변적이고 내가 원하는 결과를 얻었다 kladdService 서비스에서 반환 참조하는 DevTools로

info from network panel

+0

당신처럼 아무것도 시도 되세요' xhr.onreadystatechange = function() {}'그리고 readyState와 status를 확인 하시겠습니까? – Matt

답변

0

의 네트워크 패널에서 출력 :

 switch (category) { 
      case 'B': 
       console.log('creating basis'); 
       break; 
      case 'B-T': 
       console.log('creating basis top'); 
       $scope.produktKladdId = kladdService.create_B_T(order); 
       break; 
      case 'B-M-T': 
       console.log('creating basis, mellom, top'); 
       $scope.produktKladdId = kladdService.create_B_M_T(order); 
       break; 
      case 'B-M-M-T': 
       console.log('creating basis'); 
       $scope.produktKladdId = kladdService.create_B_M_M_T(order); 
       break; 

      case 'Mix_Minimum2B-M-T': 
       $scope.produktKladdId = kladdService.create_Mix_Minimum2B_M_T(order); 
       break; 
      case 'Mix_Minimum2M-T': 
       $scope.produktKladdId = kladdService.create_Mix_Minimum2M_T(order); 
       break; 
     } 
     console.log(order); 

     if ($scope.produktKladdId) { // if this is not defined, an error appears 
      console.log($scope.produktKladdId); 
      logService.info('prduktet har fått en ID'); 
     } else { 
      logService.error('noe gikk galt'); 
     }