resolve( ) 에 대해 질문드립니다
강사님 안녕하세요
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 으로 넘어가지 않는 이유에 대해 질문드리고 싶습니다
답변 1
1
then은 일회성입니다. 여러번 resolve를 호출한다해도 then이 여러번 호출되지 않습니다.
리눅스 노드 설치시 패키지
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





