inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

global과 콘솔, 타이머

setImmediate / clearImmediate 질문

해결된 질문

286

bee

작성한 질문수 10

0

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

setImmediate가 즉시 실행되는 것처럼 보여도 백그라운드 - 테스크 큐 - 호출 스택 과정을 거치기 때문에 그 전에 clearImmediate를 하면 취소된다는 것은 이해했습니다.

궁금한 건 아래인데요,

 

const immediate2 = setImmediate(() => {

         console.log('x');  

});

clearImmediate(immediate2);

 

여기에서 clearImmediate(immediate2);가 실행되어 'x'가 출력되지 않는, 일련의 시간 순서가 잘 이해되지 않습니다.

immediate2의 백그라운드 - 테스크 큐 - 호출 스택 과정보다 clearImmediate가 앞선 과정인지 어떻게 알 수 있는 건가요? 저는 찍어보기 전까지는 모를 것 같있는데 강사님은 미리 예측을 하신 것으로 보여 어떻게 그걸 알 수 있는지 궁금합니다. 감사합니다.

mysql mongodb nodejs Sequelize

답변 1

1

제로초(조현영)

const immediate2 = setImmediate( // 호출스택
  () => { console.log('x'); } // 백그라운드로 넘어가는 함수
);
clearImmediate(immeidate2); // 호출스택 -> 백그라운드보다 우선이므로 백그라운드 것이 실행되기 전에 취소 가능

이렇게 보시면 편합니다.

백그라운드 함수들은 호출스택이 비어 있어야 실행될 수 있습니다. setImmediate와 clearImmediate 모두 호출스택에 들어가는 함수이므로 호출스택이 비어있는게 아니니깐 백그라운드 함수보다 먼저 실행되는 것입니다.

0

bee

아 바로 이해됐습니다 빠른 답변 감사합니다

리눅스 노드 설치시 패키지

0

172

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

926

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2297

2

a[title] 질문드립니다

0

386

1

리뉴얼 강의 및 공부 방법

0

589

1

jwt decode

0

1138

1

node.js 교과서 3판 질문드립니다

0

397

1

passport와 jwt

0

438

1

리뉴얼 강의

0

428

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

359

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

490

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

511

2

nunjucks res.render('error'); 작동을 안합니다.

0

518

1

질문있습니다.

0

348

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3543

1

수업자료는 어디있나요?

0

374

1

질문 있습니디

0

245

1

multer 사용시 file 외 name값은 못받나용?

0

430

1

코드 중복 부분 질문드립니다.

0

303

1

api 만드는 이유 질문드립니다.

0

293

1

Strategy의 done에 대해 질문드립니다.

0

374

1

안녕하세요 fs 권한 관련 질문드립니다

0

456

1

시퀄라이즈 연결질문...

0

510

2

res.setHeader vs res.cookie

0

1797

3