TIL 32일차 비동기 fs module, fetch

shleecloud·2021년 9월 1일
0

Codestates

목록 보기
31/95

들어가기

어제 너무 고생을 많이 해서.. 굉장히 피곤한 상태로 시작했다. 그래도 오늘 테스트는 그나마 부드럽게 넘어가는 편이었다. 편. 이슈가 없진 않아서 이 글 이후로 이슈글을 따로 올릴 예정이다.

학습 내용은 파일시스템에 접근거나 JSON을 받아오는 동작을 비동기로 이루어지는 것을 배웠다. 자바스크립트에서 벗어나서? 조금 더 시스템이나 웹과 연동되는 부분을 배우기 시작했다. 신선하고 재밌다. JS 집에서만 놀다가 처음으로 밖으로 나간 느낌이다.

블로그를 쓰면서 느낀 부분은 Promise의 상태 부분의 개념이 조금 모호한 것 같다. 이 부분은 주말에 보강을 해야겠다. 여기에 녹이기는 조금 아깝다.

fs module

파일을 다루는 모듈이다. require 함수로 불러오는 작업은 처음이었다. utf8 인코딩을 안하면 raw 데이터가 나오는건 인상적이었다.

const fs = require("fs");

const getDataFromFile = function (filePath, callback) {
  // TODO: fs.readFile을 이용해 작성합니다
  fs.readFile(filePath, 'utf8', (err, data) => {
    if (err) {
      callback(err, null);
    } else {
      callback(err, data);
    }
  })
}

fetch

JSON으로 받아오는 fetch도 흥미로웠다. 바로 Promise 형태로 반환하는 구조라 특별하게 사용하는 용도가 있을 것 같다. 나중에 본격적으로 사용하는 파트인 HTTP로 가면 많이 사용할 것 같다.

function getNewsAndWeather() {
  // TODO: fetch을 이용해 작성합니다
  // TODO: 여러개의 Promise를 then으로 연결하여 작성합니다
  let result = {};
  return  fetch(newsURL)
  .then(data => data.json())
  .then((json) => {
    result.news = json.data
    return fetch(weatherURL)
  })

Event Loop

이 유튜브 강의도 아주 흥미롭게 봤다. 비동기가 이루어지는데 어떤 로직으로 구현되는지 생각해볼 수 있었다. 오늘 배운 것들 중에서 가장 흥미로웠다.

profile
블로그 옮겼습니다. https://shlee.cloud

0개의 댓글