• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

동기/비동기 문제인거 같은데...제가 완전 초짜라 해결이 안되서요....

21.05.16 20:39 작성 조회수 99

0

Signin.js

const _handleSigninBtnPress = async () => {
    console.log('sign in');
    try{
        console.log('console.log : 'signin());
    }catch(e){
        Alert.alert('Signin Error'e.message);
    }finally{
        spinner.stop();
    }
}

firebase.js

export const signin = async (data=> {
    console.log("위치 1");    
    await fetch('http://192.168.0.311:3000/auth/login', {
        method: 'POST',
        body: JSON.stringify(this.state),
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
        },
    })
    .then((response=> response.json())
    .then((responseJson=> {
        console.log("위치 2");
        if (responseJson.status == 'success') {
            console.log("위치 3");
            return;  
        } else {          
            console.log("위치 4");
            return;
        }
    })
    .catch((error=> {
        console.error(error);
        return;
    });
    console.log("위치 5");
};

위 Signin.js의 _handleSigninBtnPress에서 signin()을 호출하면 

콘솔에 로그 찍히는 순서가 다음과 같습니다.

> sign in

> 위치 1

> console.log : [object Object]

> 위치 2

> 위치 3

> 위치 5

위치1과 위치2 사이의 저 로그가 Signin.js의 signin() 부분인데....어떻게 해야 할지 모르겠어요...

서버를 따로 구성해서 로그인은 만들어보고 있습니다. 

node.js에서 로그인 처리하고 데이터를 리턴하여 채팅앱 소스에 녹여보려고 하는데 해결이 안되네요....

답변 2

·

답변을 작성해보세요.

1

안녕하세요, 

  

강의에서 벗어나는 질문에는 답변하지 않는점 이해해 주시면 감사하겠습니다. 

  

문제를 해결하기 위해서는 async-await와 Promise에 대해 찾아보는것을 추천합니다. 

async-await

Promise

  

추가적으로, API를 호출할 때, fetch 등을 이용해서 호출해도 되지만, 
Axios 같은 라이브러리를 이용하면 혹시 모를 코드 실수도 줄이고 조금 더 편하게 호출할 수 있습니다. 

  

감사합니다. 

0

이종엽님의 프로필

이종엽

질문자

2021.05.17

조언 감사드립니다.

좀더 학습해보도록 하겠습니다.