inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Promise, async/await

try catch문이 2개일 때 변환 방법에 대해 질문드리고 싶습니다

해결된 질문

554

Like me black

작성한 질문수 65

0

강사님 안녕하세요

유튜브 강의에서 .then( ) .catch( ) 와 try{ } catch{ } 가 같다고 가르쳐주신 말씀을 듣고 혹시 이렇게 고쳐도 되는지 질문드리고 싶습니다

아래의 코드를 promise then으로 변경시도했습니다

 (async () => {
     try {
         await Promise.resolve("Hello")
         throw new Array(-1)
     } 
     catch(err) {
         if (err.message==='Invalid array length') {
             await Promise.resolve("Hello")
         }
         else {
             console.error(err.message);
             exit(1);
         }
     }
 
     try {
         const data1 = await Promise.resolve("Hello");
         await Promise.resolve("Hello")
         await Promise.resolve("Hello")
         const data2 = await Promise.resolve("Hello")
     }
     catch(err) {
         console.error(err.message);
     }
 })()



1번째 변경 코드는 1행부터 14행까지만 수정했습니다

이 경우에는 16행부터의 try catch문이 기능을 상실했습니다


2번째 변경코드는 1행부터 25행까지 수정했습니다

2번째 소스코드는 이렇습니다

(() => {    
    return Promise.resolve("Hello")
    .then(()=>{
            throw new Array(-1)
        }) 
    .catch(async(err)=>{
        if (err.message==='Invalid array length') {
            await Promise.resolve("Hello")
        }
        else {
            console.error(err.message);
            exit(1);
        }
    }) 

    .then(async()=>{
        const data1 = await Promise.resolve("Hello");
        await Promise.resolve("Hello")
        await Promise.resolve("Hello")
        const data2 = await Promise.resolve("Hello")
    })
    .catch(err=> {
        console.error(err.message);
    })
})()


혹시 이렇게 2번째 방법으로 변환하는 게 맞는지 질문드리고  싶습니다

함수 하나에 try catch 문이 2개 있으면

1번째 try catch문만 promise then으로 변경하지 말고

1번째 2번째 try catch문 전부 promise then으로 변경해야 하는지 질문드리고 싶습니다

긴 질문을 읽어주셔서 감사합니다

mongodb nodejs mysql Sequelize

답변 1

1

제로초(조현영)

네 전부 바꿔야합니다. return 아래로는 실행이 안 돼요. 그리고 애초에 부분적으로 바꾸는 케이스가 실부에 거의 없습니다.

0

Like me black

가르쳐주셔서 정말 고맙습니다 

같은 걸 계속 질문드려서 죄송합니다
그 약간 햇갈려서 그러는데요
왼쪽 사진 20행의 data2 변수 위치가
오른쪽 사진 30행 콜백의 인자로 가는 게 맞는지 질문드리고 싶습니다 ㅠㅠ
27행보다 30행으로 가는 게 더 맞는 것 같아서요..

0

Like me black

이 부분 원리는 이미 충분히 가르쳐주셔서, 더 질문드리기는 죄송해서요
맞는지만 확인해주시면 감이 딱 잡힐 것 같습니다

0

제로초(조현영)

30행으로 가야죠. 지금 전부다 Promise.resolve('Hello')라서 헷갈리시는것 같은데 다른 문자로 바꿔보면 30행이 당연합니다.

0

Like me black

강사님 덕분에 감이 확실하게 잡히는 것 같습니다
정말 고맙습니다

리눅스 노드 설치시 패키지

0

172

0

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

0

932

3

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

0

2297

2

a[title] 질문드립니다

0

388

1

리뉴얼 강의 및 공부 방법

0

590

1

jwt decode

0

1138

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

520

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

456

1

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

0

511

2

res.setHeader vs res.cookie

0

1799

3