동기, 비동기 처리
262
작성한 질문수 2
코드복습중에 비동기, 동기처리 관련하여 궁금한점이 생겨 질문합니다!
const User = require('../models/user');
const bcrypt = require('bcrypt');
exports.join = async (req, res, next)=>{
const { nick, email, password } = req.body;
try {
const exUser = await User.findOne({where: {email}});
if(exUser){
return res.redirect('/join?error=exist')
}
const hash = await bcrypt.hash(password, 14);
await User.create({
nick,
email,
password: hash,
});
return res.redirect('/');
} catch(err){
console.error(err);
next(err);
}
}위의 코드가 수업중에 작성하신 코드입니다
여기서 아래부분만 이처럼 await를 뺀 상태로 변경하였는데,
const exUser = User.findOne({where: {email}});if(exUser)가 true값이 되어
return res.redirect('/join?error=exist')으로 빠지게 되었습니다.
제가 이해하기로는 await가 붙은 비동기 처리들은 동기처리들이 완료되어 호출스택이 비기전까지는 task큐에서 대기하는 것으로 알고 있는데,
위의 현상대로면 await가 붙은 아래 코드 2개가 먼저 실행되고
const hash = await bcrypt.hash(password, 14);
await User.create({
nick,
email,
password: hash,
});
이 코드가 실행된 것 같은데
const exUser = User.findOne({where: {email}});
왜 이런 현상이 발생하는지 궁금합니다!!! 감사합니다
답변 1
깃헙 질문
0
82
2
강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.
0
76
1
aws - lightsail 이용 관련
0
58
1
4강 http 서버 만들때 ESM방식으로 해도 될까요?
0
81
2
모듈 사용 시 단점이 있나요?
0
82
1
node.js 버전 및 typescript 적용 문의
0
95
2
12.7. 방장기능(강퇴) 질문드립니다.
0
80
2
12.7 socket.js코드 그대로 뱃겨서 했는데, socket.request.session.color가안나오네요
0
69
1
12.7 코드 그대로 뱃겨서 햇는데 스샷같이 오류가뜹니다.
0
75
2
12.7.1스스로 해보기 질문되나요
0
95
3
시퀄라이즈 실습하기 질문드립니다.
0
196
9
<7-5. 시퀄라이즈 사용하기>수업 질문 드립니다.
0
97
2
크롬에서 user id를 인풋에 입력하고 등록하면 404 에러처리 페이지가 뜹니다.
0
113
2
구매 결제관련 질문입니다 !
0
123
1
다수의 supertest 가 실행될 때 force:true로 인한 DB 초기화 문제
0
134
2
node 설치 방법이 전혀다르게 바뀐것 같습니다.
0
152
2
12강 깃허브에 있는 12.7 chat.html 복붙했는데 css오류
0
122
2
무료/프리미엄 동시 소유 시 질문
0
117
1
비주얼 스튜디오 코드로 계속 진행해도 괜찮을까요?
0
135
2
10강 cors에러 localhost:4000으로 접속했을때 에러
1
159
2
webstorm 해결할 수 없는 변수 문제
0
155
2
혹시 몽고DB 쓸거면 MySQL 강의 스킵해도 되나요?
0
149
2
LightSail 실행 중 오류 질문드립니다!
0
204
2
RedisStore 사용법 질문
0
133
2





