superagent(https://github.com/visionmedia/superagent)는 동기 콜이 없다.
무조건 비동기 콜이다.
따라서 아래처럼 superagent가 동기콜인양 쓰면 state/props 간의 동기 이슈가 발생할 수 있다.
즉, superagent에서 end 내부가 동작되기 전에 handleResult가 먼저 실행된다.
superagent.get('/search_log')
.query(..)
.retry(2)
.end((err, res) => {
if (res.ok) { //..
} else {
//..
}
}); {this.handleResult()}
따라서. end() 밑에 성공하고 난 이후에 handleResult()를 호출하는 형태로 진행하면 동기 콜과 같은 효과를 얻을 수 있을 것이다.
superagent.get('/search_log')
.query(..)
.retry(2)
.end((err, res) => {
if (res.ok) { //..
{this.handleResult()}
} else {
//..
}
});
'java script' 카테고리의 다른 글
[react] create-react-class 대신 extends React.Component (0) | 2018.01.03 |
---|---|
React와 Redux 처음 연동할 때 도움 되는 문서 (0) | 2017.12.22 |
[React] 컴포넌트 안에서 내부 함수 호출하기 (0) | 2017.12.22 |
React-Redux 처음 하기 (0) | 2017.12.21 |
react,redux 개발시 꼭 필요한 디버깅 툴 (0) | 2017.12.20 |