강의

멘토링

커뮤니티

Inflearn Community Q&A

harryyoon's profile image
harryyoon

asked

[Renewed] Node.js Textbook - From Basics to Project Practice

Using the file system

안녕하세요~질문있습니다.

Resolved

Written on

·

177

0

안녕하세요 제로초님~

강의에서 동기메서드를 사용한 sync.js와 비동기메서드를 사용한 async.js의 차이가 여러개를 실행했을 때, async.js는 모든 파일들이 동시에 백그라운드로 들어가서 실행되고, 그러나 순서는 지켜진다고 하셨는데요.

그럼 sync.js를 한번실행한것과 async.js를 한번 실행한것은 차이가 없나요?

비동기 메서드를 사용한 1번 2번 3번 4번 함수에서 2번은 1번이 백그라운드에서 처리되고, 테스크큐에서 호출스택으로 갈때까지 호출 스택에 들어가지 못하는게 맞나요??

mysqlnodejsmongodbSequelize

Answer 1

1

zerocho님의 프로필 이미지
zerocho
Instructor

한 번만 실행하는 경우는 큰 차이가 없습니다. 동시에 여러번 호출될 때 비동기의 진가가 드러납니다.

비동기 1,2,3,4번이 뭔가요? 그리고 콜백 함수와 readFile 본 함수도 순서 차이가 있습니다.

Harry님의 프로필 이미지
Harry
Questioner

이번강의에서 나온 코드에서 await으로 처리한 각각의 함수들이 이벤트루프에서 어떻게 동작하는지 궁금해서 여쭤봤습니다. 아래에서 2번 콘솔로그는 1번이 호출스택 > 백그라운드>테스크큐>호출스택에서 실행될 때까지 호출스택에 들어가지 못하는게 맞나요??

const fs = require('fs').promises;
async function main() {
  let data = await fs.readFile('./readme.txt')
  console.log('1번', data.toString());
  data = await fs.readFile('./readme.txt')
  console.log('2번', data.toString());
  data = await fs.readFile('./readme.txt')
  console.log('3번', data.toString());
  data = await fs.readFile('./readme.txt')
  console.log('4번', data.toString());
}
main();
zerocho님의 프로필 이미지
zerocho
Instructor

네 await이면 앞에 것이 끝나야 호출스택에 들어갑니다.

저도 궁금햇어요 감사해여 질문해줘서

harryyoon's profile image
harryyoon

asked

Ask a question