java script
[javascript] superagent 동기 콜(sync call)
'김용환'
2017. 12. 22. 12:16
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 {
//..
}
});