async, await, promise관련질문입니다
215
작성한 질문수 7
안녕하세요 강의대로 전부 만들고 추가로 책에서 추천해주신 기능들 구현하다가 약간의 문제가 생겨서 질문드립니다.
현재 만들던게 로그인일때랑 프로필변경할때 닉네임중복체크를하고 중복되면 사용자에게 알려주려고 합니다.
닉네임중복처리하는부분이 회원가입할때 프로필변경할때 2번사용이되서 따로 함수로 빼서 require해서 처리하려고 따로만들었는데요 코드보면
위와같이 만들었습니다. 처음 생각했던방식이 boolean반환형식이니까 사용하는곳에서 if(nicknameOverlapCheck(nick)){ res.redirect()....} 이런식으로사용하려고했는데 오류나서 확인해보니 async함수일경우에는 자동으로 return값이 Promise.resolve(true)이런식으로 감싸져서 리턴되기때문에 오류나서 aysnc를 뺄순없고
받는곳에서 .then(( bool)=>{ if(bool){return res.redirect() ... } }) 처리로 바꿔보니 이것도 콜백함수에서 빠져나가는 리턴이 되어버려서 현재는 그냥 사용하는곳에서 직접 적어줘서 처리를 하고 있습니다. 물론 두번밖에 반복안되서 크게 상관없지만 이런반복이 개인적으로 불편해서 함수로 만들어서 처리하고 싶습니다. 혹시 async함수에서 값을 함수밖으로 받아오는 좋은방법이 있을까요?
답변 1
1
.then(( bool)=>{ if(bool){return res.redirect() ... } }) 이렇게 하는게 맞습니다. 아마 다른 이유로 안 되셨을 겁니다.
.then 보다는 async/await 쓰시는 게 좀 더 나을겁니다.
const result = await nicknameOverlapCheck(nick);
if (result) {
return res.redirect();
}
리눅스 노드 설치시 패키지
0
159
0
socket.js 에서 referer로부터 roomId를 가져올 때
0
905
3
스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문
0
2281
2
a[title] 질문드립니다
0
375
1
리뉴얼 강의 및 공부 방법
0
581
1
jwt decode
0
1128
1
node.js 교과서 3판 질문드립니다
0
391
1
passport와 jwt
0
432
1
리뉴얼 강의
0
417
2
혹시 Node.js 교과서 3판 이북은 언제 나오나요?
0
353
1
몽고디비 사용자도 MYSQL부분을 들어야 하나요???
0
481
1
sql 쿼리 로그는 어떤 모듈이 작성하나요?
0
505
2
nunjucks res.render('error'); 작동을 안합니다.
0
511
1
질문있습니다.
0
346
1
multer 한글 파일 업로드시 파일명이 깨져요.
1
3535
1
수업자료는 어디있나요?
0
366
1
질문 있습니디
0
235
1
multer 사용시 file 외 name값은 못받나용?
0
416
1
코드 중복 부분 질문드립니다.
0
298
1
api 만드는 이유 질문드립니다.
0
286
1
Strategy의 done에 대해 질문드립니다.
0
362
1
안녕하세요 fs 권한 관련 질문드립니다
0
447
1
시퀄라이즈 연결질문...
0
492
2
res.setHeader vs res.cookie
0
1785
3





