2017-12-15 11 views
1

subscribe() 안에있는 조건에서 값을 설정하려고합니다. 여기에 내가 순간조건 각도 (이온 3)에서 변수 값을 설정

var statuscode; 
     this.http.post('http://192.168.3.223:84/fppb/andro_login',this.loginData) 
     .subscribe(
       function(response) { 
        console.log(response); 
        if(response) 
         statuscode = '1'; 
        else 
         statuscode = '2'; 
       }, 
       function(error) { 
         statuscode = '3'; 
       } 
     ); 
     loader.dismiss(); 
     console.log(statuscode); 
에서 뭘하는지입니다

이 코드는 항상 나에게 내부 undefined를 제공 내 console.log(statuscode);을;

이외에도이 페이지는 http://192.168.3.223:84/fppb/andro_login이고 true 또는 false를 반환합니다. 다음은 응답을 결정하는 코드입니다.

if($query->num_rows() > 0) 
     { 
      echo json_encode(true); 
     }else{ 
      echo json_encode(false); 
     } 

어떻게 해결할 수 있습니까?

불쌍한 영어로 죄송합니다. 미리 감사드립니다.

편집

그래서, 나는 지정된 statuscode에 대한 alert을 보여주고 싶다. 이 일을 할 때 :

TypeError: Cannot read property 'create' of undefined

어떤 아이디어 :

signIn(){ 
    let loader = this.ld.create({ content: "Please wait..." }); 
    loader.present(); 

     var headers = { 
       'Access-Control-Allow-Origin' : '*', 
       'Access-Control-Allow-Methods' : 'POST' 

      }; 

     let bodyString = JSON.stringify(this.loginData); // Stringify payload 

     var statuscode; 
      this.http.post('http://192.168.3.223:84/fppb/andro_login',this.loginData) 
      .subscribe(
        function(response) { 
         console.log(response); 
         if(response) 
         { 
           let alert = this.alertCtrl.create({ 
            title: 'Sukses', 
            subTitle: 'Login Berhasil', 
            buttons: ['OK'] 
           }); 
           loader.dismiss(); 
           alert.present(); 
         } 
         else { 
          let alert = this.alertCtrl.create({ 
           title: 'Gagal', 
           subTitle: 'Username atau Password salah', 
           buttons: ['OK'] 
          }); 
          loader.dismiss(); 
          alert.present(); 
         } 
        }, 
        function(error) { 
          let alert = this.alertCtrl.create({ 
          title: 'Gagal', 
          subTitle: 'Username atau Password salah', 
          buttons: ['OK'] 
         }); 
           loader.dismiss(); 
           alert.present();       
        } 
      ); 
    } 

나는이 오류가?

답변

1

javascript가 비동기 적이기 때문에 observable 이벤트에 가입하기 전에 콘솔 로그 문이 실행됩니다. 그것이 정의되지 않은 이유입니다.

당신은 내가해야 할 일이 있기 때문에, 난에`alert.present()를 원하는 수행 subscribe

.subscribe(
      function(response) { 
       console.log(response); 
       if(response) 
        statuscode = '1'; 
       else 
        statuscode = '2'; 

       console.log(statuscode); 
      }, 
      function(error) { 
        statuscode = '3'; 
      } 
    ); 
    loader.dismiss(); 
+0

내부의 문을 이동해야합니다;'지정된 상태 코드에 대해. – YVS1102

+0

왜 구독 할 수 없습니까? –

+0

내 업데이트를 확인하십시오. – YVS1102