inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

resolve( ) 에 대해 질문드립니다

해결된 질문

249

Like me black

작성한 질문수 65

0

강사님 안녕하세요

resolve( )에 대해 질문드리고 싶습니다

 

아래의 소스코드를 봐주시면

setInterval( )이 1초마다 

resolve(message)를 실행해줍니다.

.then((message)=>{
        return new Promise((resolve, reject)=>
        {
            setInterval(()=>{
            console.log('1초마다 실행');
            resolve(message);},1000);
        });
    })
    .then((message2)=>{
        return new Promise((resolve, reject)=>
        {
            setTimeout(()=>{
                console.log('0.5초 후 실행');
                resolve(message2);},500);
        });
    })

그런데, 다음 .then( )으로 간 경우는
첫 번째 resolve(message) 일 때 뿐이었고

setInterval( ) 으로 1초마다 반복해서

resolve(message) 를 호출해도

resolve(message)를 2번째 호출할 때부터는 

다음 .then( ) 구문으로 가지 않았습니다.

 

그래서 원인을 생각해봤는데, 

resolve( )만 리턴해서 그런 게 아닐까 라는 생각이 들었습니다

setInterval( ) 이 resolve( ) 뿐만 아니라, promise( resolve( ) )를 반복하게 해봤습니다

.then((message)=>{
        return setInterval(()=>{ new Promise((resolve, reject)=>
        { 
            console.log('1초마다 실행');
            resolve(message);
        });
     } ,1000);
    })

그러나 이번에도 2번째 호출부터는 다음 .then 으로 넘어가지 않았습니다

 
이번에는 then의 콜백 자체를 감싸봤습니다

  .then(setInterval((message)=>{
        return new Promise((resolve, reject)=>
        {
            console.log('1초 후 실행');
            resolve(message);
        });
        },1000))

그래도 결과는 마찬가지였습니다
그래서 혹시 그 이유가 궁금해서

setInterval( ) 로 resolve( message ) 또는 new promise( resolve( message ) ) 또는 then의 콜백함수까지 반복 호출해도 
2번째 호출 부터는 다음 .then 으로 넘어가지 않는 이유에 대해 질문드리고 싶습니다

mysql nodejs mongodb Sequelize

답변 1

1

제로초(조현영)

then은 일회성입니다. 여러번 resolve를 호출한다해도 then이 여러번 호출되지 않습니다.

0

Like me black

가르쳐주셔서 감사합니다

0

제로초(조현영)

현재 제 유튜브에서 js 고급 강좌 하고 있으니 그것도 같이 봐보세요.

0

Like me black

오 인간 JS 엔진되기 강좌인가요? 네 고맙습니다

리눅스 노드 설치시 패키지

0

172

0

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

0

932

3

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

0

2297

2

a[title] 질문드립니다

0

388

1

리뉴얼 강의 및 공부 방법

0

591

1

jwt decode

0

1139

1

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

0

399

1

passport와 jwt

0

439

1

리뉴얼 강의

0

428

2

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

0

360

1

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

0

491

1

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

0

512

2

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

0

521

1

질문있습니다.

0

349

1

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

1

3547

1

수업자료는 어디있나요?

0

374

1

질문 있습니디

0

245

1

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

0

431

1

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

0

303

1

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

0

294

1

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

0

375

1

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

0

457

1

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

0

511

2

res.setHeader vs res.cookie

0

1799

3