9/26 TIL

최준호·2022년 9월 26일
0

< 목차 >

  1. 타이머 Api와 관련된 메서드 정리
  2. node.js 모듈

1. 타이머 Api와 관련된 메서드 정리

Promise 실행 함수가 가지고 있는 두 개의 파라미터 resolve 와 reject 는 각각 무엇을 의미할까?

  • resolve는 연산을 이행할 콜백함수
  • reject는 실패시 이행할 콜백함수

resolve, reject함수에는 전달인자를 넘길 수 있습니다. 이때 넘기는 전달인자는 어떻게 사용할까?

  • resolve의 처음 전달인자는 Promise 생성시 제공한 전달인자이고,
    이전의 then메서드에서 반환한 값이 있다면 그 값을 새 전달인자로 받는다.

  • reject도 처음 전달인자로 Promise 생성시 제공한 전달인자를 사용하나,
    전달인자는 브라우저 콘솔 창에서 에러로 출력된다.
    이전의 catch메서드에서 반환한 값이 있다면 그 값을 새 전달인자로 받는다.

new Promise()를 통해 생성한 Promise 인스턴스에는 어떤 메서드가 존재하나요? 각각은 어떤 용도일까?

  • Promise.prototype.then()
    프로미스에 이행과 거부 처리기 콜백을 추가하고,
    콜백이 호출될 경우 그 반환값으로 이행한다.
    호출되지 않을 경우(onFulfilled, onRejected 중 상태에 맞는 콜백이 함수가 아닐 경우)
    처리된 값과 상태 그대로 처리되는 새로운 프로미스를 반환한다.
    새로운 프로미스를 반환하므로 연결이 가능하다.

  • Promise.prototype.catch()
    프로미스에 거부 처리기 콜백을 추가하고,
    콜백이 호출될 경우 그 반환값으로 이행한다.
    호출되지 않을 경우, 즉 이전 프로미스가 이행하는 경우
    이행한 값을 그대로 사용해 이행하는 새로운 프로미스를 반환한다.
    새로운 프로미스를 반환하므로 연결이 가능하다.

  • Promise.prototype.finally()
    프로미스의 이행과 거부 여부에 상관없이
    처리될 경우 항상 호출되는 처리기 콜백을 추가한다.
    이행한 값 그대로 이행하는 새로운 프로미스를 반환한다.

Promise.prototype.then 메서드는 무엇을 리턴할까?

  • 콜백(resolve)이 호출될 경우 그 반환값을,
    호출되지 않을 경우, (혹은 resolve같은 이행 콜백함수가 아닐 경우)
    처리된 값과 상태 그대로 처리되는 새로운 프로미스를 반환한다.

Promise.prototype.catch 메서드는 무엇을 리턴할까?

  • 콜백(reject)이 호출될 경우 그 반환값을,
    호출되지 않을 경우, (즉 이전 프로미스를 이행하는 경우)
    이행한 값을 그대로 사용해 새로운 프로미스를 반환한다.

Promise의 세 가지 상태는 각각 무엇이며, 어떤 의미를 가질까?

  • Promise는 다음 중 하나의 상태를 가진다.
    - 대기(pending): 이행하지도, 거부하지도 않은 초기 상태.
    - 이행(fulfilled): 연산이 성공적으로 완료됨.
    - 거부(rejected): 연산이 실패함.

await 키워드 다음에 등장하는 함수 실행은 어떤 타입을 리턴할 경우에만 의미가 있을까?

  • 성공할 경우만 리턴.
  • 실패할 경우를 작성하고 싶다면 try{} catch{}를 사용해야 한다.

await 키워드를 사용할 경우, 어떤 값이 리턴될까?

  • resolve의 전달인자가 리턴된다.
  • 이전단계 then에서 값을 리턴했을 경우 그 값으로 바뀐다.
  • Promise에 의해 만족되는 값이 반환됩니다. - - - Promise가 아닌 경우에는 그 값 자체가 반환됩니다.

2. node.js 모듈

모듈이란 건축으로부터 비롯된 모듈이라는 단어는, 어떤 기능을 조립할 수 있는 형태로 만든 부분이다. 그 중 fs모듈은, PC의 파일을 읽거나 저장하는 등의 일을 할 수 있게 도와준다.

모든 모듈은 '모듈을 사용하기 위해 불러오는 과정'이 필요하다. 브라우저에서 다른 파일을 불러올 때에는 <script>태그를 이용한다.

<script src="불러오고싶은_스크립트.js"></script>

Node.js에서는 js 코드 가장 상단에 require구문을 이용하여 다른 파일을 불러온다.

const fs = require('fs'); // 파일 시스템 모듈을 불러온다
const dns = require('dns'); // DNS 모듈을 불러온다

readFile

fs.readFile() 메서드는 파일을 읽는 데 사용되는 매장 메서드이다. 전체 파일을 버퍼로 읽어준다.

  • filename: 읽을 파일의 이름이나 다른 위치에 저장된 경우의 전체경로
  • encoding: 파일의 인코딩을 보유한다. 기본값은 'utf8'이다.
  • callback: 파일을 읽은 후 호출되는 콜백 함수이다.
    • err: 작업에 실패하면 반환되는 오류
    • data: 파일의 내용
fs.readFile(filename, encoding, callback)

< 사용방법 >

  • readfile 메서드 사용방법은 비동기식으로 동작한다. => 콜백함수로 메서드 결과를 받을 수 있다.
  • 만약 에러일 경우에는 콜백함수 첫 번째 파라미터를 통해 에러내용이 확인 가능하다.
  • 만약 데이터를 성공적으로 가져왔다면 두 번째 파라미터를 통하여 파일 내용을 읽을 수 있다.
constg fs = require('fs');

fs.readFile(filepath,'utf8', (err, data) => {
  if(err) {
  // 만약 파일을 읽어오는데 실패했으면,
    // 아래는 에러 예시
  } else {
  console.log(data)
  })
profile
LV2 프론트엔드 엔지니어

0개의 댓글