예외처리 하기
데이터가 하나 존재한다면
데이터가 여러개 존재한다면
사용자로부터 특정 숫자를 받아서 어떤 프로그램을 실행시킨다면
-사용자가 숫자를 입력하지 않았을 때의 오류!
try문 : 실제 오류가 발생했을 때, 실행할 명령문을 작성하는 곳
catch문 : 발생한 오류의 이름 및 설명들이 들어가 있는 곳
throw문 : 개발자가 직접 오류 메세지를 정의할 수 있는 곳
console.error() => 오류 메세지를 표기할 때 사용할 수 있음.
동기 처리 방식 VS 비동기 처리 방식
동기 처리 방식
비동기 처리 방식
callback함수 필요
비동기 처리 방식 & 콜백 함수
coffee 주문 접수 받고 준비 완료까지 3초 뒤에 출력하는 비동기방식
콜백지옥을 막기 위해
promise : 무분별한 콜백함수 사용의 부작용을 최소화하기 위해서 만든 객체
프로미스 객체 => 매개변수 : 조건값이 true일 때, 실행할 함수 & 조건값이 fals일 때 실행할 함수
익명으로 콜백함수 작성하기
promise 객체 진행 단계
pending : 프라미스 객체를 만들고 대기중인 상태
fulfiled : 프라미스 객체를 활용해서 true값에 도착한 상태
rejected : 프라미스 객체를 활용해서 false값에 도착한 상태
3초 뒤에
아무것도 입력하지 않았을 때
async 함수와 await 예약어는 프라미스 객체 또는 콜백함수 사용 시, 함수 안에 있는 실행문을 "비동기적"으로 실행하기 위해서 태어났습니다.
async 함수 사용 안한 예시
async 함수 사용한 예시
await 함수
whatYourFavorite()함수의 실행이 끝날 때까지 기다린 후에 response값을 저장
response값을 사용해서 displaySubject()함수를 실행하고 결과값을 result에 저장
https://jsonplaceholder.typicode.com/users
async function init() {
const response = await fetch("https://jsonplaceholder.typicode.com/users");
const users = await response.json();
display(users)
}
function display(users) {
const result = document.querySelector("#result");
let string = "";
users.forEach((user) => {
string += `
<table>
<tr><th>이름</th><td>${user.name}</td></tr>
<tr><th>아이디</th><td>${user.userame}</td></tr>
<tr><th>이메일</th><td>${user.email}</td></tr>
</table>
`;
});
result.innerHTML = string;
}
init();