async patterns 에서 blocking 한다는게 뭔지 한번 보자.
console.log("Welcome to Node Tutorial");
// 1. 아무것도 연관되지 않고 바로 실행되겠지 ?
const http = require("http");
const server = http.createServer((req, res) => {
if (req.url === "/") {
res.end("Home Page");
// 3. 3000 포트로 서버에 접속하면 웹상에서 출력이 될거고
} else if (req.url === "/about") {
// This is blocking code
// 4. /about 으로 타고 들어가면!!!
for (let i = 0; i < 1000; i++) {
for (let j = 0; j < 1000; j++) {
console.log(`${i} ${j}`);
// 6. 여기서 모든 계산이 끝나면
}
}
res.end("about page");
// 7. 페이지가 "about page" 를 출력하면서 마무리
} else {
res.end("Error page");
// 5. 여기가 중요한데, "about page" 보다 "Error page"가
// 먼저 출력이 된 이후에!!!!!!!!
}
});
server.listen(3000, () => {
console.log("the server is listening on port 3000...");
});
// 2. 서버가 열리면서 출력이 되겠고,
blocking 당해서 돌고 있는 중...
1000 years later...... 완료 됨