5/25 TIL

이승준·2023년 5월 25일
0
post-thumbnail

5/25 메모

강의 자료 모음집 : https://www.notion.so/teamsparta/efca6302f6e84fef9cac2dbe270d98c6

JS명령어는 보통 MDN 이 잘 되어있다.
(한국어 지원)

부교재 영상 - https://teamsparta.notion.site/1e13acaf1bff4a158238965c31a5d85f

5/25 회고

문제) async/await 로 리팩토링

class HttpError extends Error {
  constructor(response) {
    super(`${response.status} for ${response.url}`);
    this.name = 'HttpError';
    this.response = response;
  }
}


function loadJson(url) {
  return fetch(url)
    .then(response => {
      if (response.status == 200) {
        return response.json();
      } else {
        throw new HttpError(response);
      }
    })
}

function narutoIsNotOtaku() {
  let title = prompt("애니메이션 제목을 입력하세요.", "naruto");

    return loadJson(`https://animechan.vercel.app/api/random/anime?title=${title}`)
    .then(res => {
            alert(`${res.character}: ${res.quote}.`);
      return res;
    })
    .catch(err => {
      if (err instanceof HttpError && err.response.status == 404) {
        alert("일치하는 애니메이션이 없습니다. 일반인이시면 naruto, onepiece 정도나 입력해주세요!");
        return narutoIsNotOtaku();
      } else {
        throw err;
      }
    });
}

narutoIsNotOtaku();

시도

function loadJson(url) {
    return new Promise(function (resolve) {
        ...
    })
}
var narutoIsNotOtaku = async function () {
    let title = prompt("애니메이션 제목을 입력하세요.", "naruto");
	...
}

narutoIsNotOtaku(); // Promise {<fulfilled>: undefined} 가 뜬다  onepiece는 먹지 않고 반응도 뜨지 않는다

Promiseasync 를 넣어 리팩토링 했다

문제점
1. 네이버에선 뜨고 구글에선 에러 (CROS 문제라고함)
2. 입력 되고 200ok도 반환하는데 새로운 메시지가 alert 되지 않음
3. 본인이 이해를 잘 못함


회고


이번주 목표

  • Git 강의 다시 듣기 & 실습
  • js 문법종합반 1회독
  • 프로그래머스 60문제
  • js기본문법 2회독 + 숙제 이해

0개의 댓글