inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

async await에 대해 질문드립니다

해결된 질문

231

Like me black

작성한 질문수 65

0

강사님 안녕하세요

이 부분을 너무 질문드리는 것 같아서 죄송한 마음에 유튜브 비동기 함수 강의를 앞에서 50분 정도 들었습니다
(다른 급한 일들 때문에 한번에 다 못봤지만, 조금씩 꾸준히 다 보겠습니다 ㅠㅠ)

강사님께서 저희를 위해서 주말에 못쉬시고, 강의 올려주셨는데도,

그래도 이해가 어려운 부분이 있어서 하나만 더 봐주시면 감사하겠습니다 ㅠㅠ

아래의 소스코드들은 전부 이미지 파일이 아니라, 복붙 가능하십니다

아래의 1번째 소스코드와

async function a(){
    await new Promise((resolve,reject)=>{
        resolve();
    })
    await new Promise((resolve,reject)=>{
        resolve();
    })
    await new Promise((resolve,reject)=>{
        resolve();
    })
}
a();

 

아래의 2번째 소스코드가 근본적으로 같은지 실험을 해보고 싶었습니다

async function b(){
    await new Promise((resolve,reject)=>{
        resolve();
    })
}

async function a(){
    await new Promise((resolve,reject)=>{
        resolve();
    })
    b();
    await new Promise((resolve,reject)=>{
        resolve();
    })
}
a();

 

 

확실한 방법은 아래의 async 함수 a( )를

promise. then( ) 구문으로 변환해보면 알 것 같았습니다

async function a(){
    await new Promise((resolve,reject)=>{
        resolve();
    })
    await new Promise((resolve,reject)=>{
        resolve();
    })
    await new Promise((resolve,reject)=>{
        resolve();
    })
}

 

혹시 위의 async a( ) 함수를

아래처럼 변환하는 게 맞는지

function a(){
    return new Promise((resolve,reject)=>{
        resolve();
    })
    .then(()=>{
        return new Promise((resolve,reject)=>{
            resolve();
        })
    })
    .then(()=>{
        return new Promise((resolve,reject)=>{
            resolve();
        })
    })
    .then(()=>{

    })
}

 

아니면 아래처럼 변환하는 게 맞는지 질문드리고 싶습니다


function a(){
    return new Promise((resolve,reject)=>{
        resolve();
    })
    .then(()=>{
        return new Promise((resolve,reject)=>{
            resolve();
        })
        .then(()=>{
            return new Promise((resolve,reject)=>{
                resolve();
            })
            .then(()=>{

            })
        })
    })
}

 

읽어주셔서 감사합니다 ㅠㅠ

nodejs mongodb mysql Sequelize

답변 1

0

제로초(조현영)

then이 나란히 있는 코드가 맞고요.

await b(); 해야 근본적으로 같은 코드가 됩니다.

 

0

Like me black

가르쳐주셔서 감사합니다

1. 아래의 두 코드가 같다는 말씀으로 이해했습니다

async function a(){
    await new Promise((resolve,reject)=>{
        resolve();
    })
    await new Promise((resolve,reject)=>{
        resolve();
    })
    await new Promise((resolve,reject)=>{
        resolve();
    })
}

 

function a(){
    return new Promise((resolve,reject)=>{
        resolve();
    })
    .then(()=>{
        return new Promise((resolve,reject)=>{
            resolve();
      })
    })
    .then(()=>{
        return new Promise((resolve,reject)=>{
            resolve();
      })
    })
    .then(()=>{
    })
}

 

2. 그리고 아래의 두 소스코드가 같다는 말씀으로 이해했습니다

async function a(){
    await new Promise((resolve,reject)=>{
        resolve();
    })
    await new Promise((resolve,reject)=>{
        resolve();
    })
    await new Promise((resolve,reject)=>{
        resolve();
    })
}

 

async function b(){
    await new Promise((resolve,reject)=>{
        resolve();
    })
}

async function a(){
    await new Promise((resolve,reject)=>{
        resolve();
    })
    await b();
    await new Promise((resolve,reject)=>{
        resolve();
    })
}

 

3. 그래서 b( )를 promise then으로 변형시켜봤습니다

그런데 변형해보니
소스코드가 다른 것 같았습니다

 

 

혹시 제가 잘못 변형을 한 부분이 있는지 질문드리고 싶습니다

바쁘신데, 많은 도움 주셔서 감사합니다

0

제로초(조현영)

뭐가 다르다고 생각하시는 건가요? 아무 의미없는 .then(() => {}) 이 붙은게 어떤 영향을 미치는거라고 생각하시나요?

제 생각에는 이제 이건 충분히 하셨으니 넘어가셔도 될 것 같습니다.

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

398

1

passport와 jwt

0

439

1

리뉴얼 강의

0

428

2

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

0

359

1

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

0

490

1

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

0

512

2

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

0

520

1

질문있습니다.

0

349

1

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

1

3545

1

수업자료는 어디있나요?

0

374

1

질문 있습니디

0

245

1

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

0

431

1

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

0

303

1

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

0

293

1

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

0

374

1

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

0

456

1

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

0

511

2

res.setHeader vs res.cookie

0

1799

3