본문 바로가기
Node.js

[Node.js] 노드제이에스 - 노드의 비동기 패턴

by Seong-Jun 2024. 2. 6.
728x90
반응형
SMALL

Do it! Node.js 프로그래밍 입문 공부단 4일차 입니다.

 

프라미스

콜백함수을 계속 사용하다보면 콜백지옥에 빠집니다. 그래서 등장한게 Promise입니다. 노드 모듈에는 프라미스를 반환하는 함수가 따로 있습니다.

 

프라미스를 실행하고 처리한 결과가 성공이면 then(), 실패하면 catch(), 성공과 실패에 관계가 없을 때는 finally()를 사용합니다. (then()이나 catch()는 반환값이 프라미스이므로 프라미스를 계속 연결해서 사용할 수 있는데 이것을 프라미스 체이닝이라고 합니다.)

 

const fs = require("fs").promises
fs.readdir("./05")
    .then(result => console.log(result))
    .catch(err => console.log(err))

 

async / await

ES8부터 새로 등장한 비동기 처리방법입니다. 비동기 처리할 함수를 감싸는 함수를 만들고 async 키워드를 붙이고 처리할 함수 앞에 await 키워드를 사용합니다. await를 붙일 수 있는 함수는 프라미스를 반환하는 메서드여야 합니다.

 

const fs = require("fs").promises
async function readDirAsync() {
    try {
        const files = await fs.readdir("./05")
        console.log(files)
    } catch (error) {
        console.error(error)
    }
}

readDirAsync()
728x90
반응형
LIST

댓글