일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ngrok설치
- nextjs
- ngrok실행
- next.js css
- github io
- dart 변수
- react
- npm styled-reset
- API 토큰
- API token
- bootstrap
- github
- SCSS
- 컨디셔널 렌더링
- nextjs .env
- git lab
- Git
- fetch
- typescript react
- There isn’t anything to compare
- rewrites
- nextjs 설치
- react typescript
- input type=file
- icon
- createGlobalStyle
- getModifierState
- styled components
- CSS
- react env
- Today
- Total
꾸준히 성장하는 개발자
[JavaScript] Promise/ fetch / then / catch / async await 본문
Promise
:자바스크립트 비동기 처리에 사용되는 객체
Promise 객체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냅니다.
- 대기(pending): 이행하지도, 거부하지도 않은 초기 상태.
- 이행(fulfilled): 연산이 성공적으로 완료됨.
- 거부(rejected): 연산이 실패함.
Promise를 공부해보자
fetch로 json파일을 불러오면
let fetched = fetch("https://jsonplaceholder.typicode.com/posts");
console.log(fetched)
// Promise{...}
fetch는 Promise 객체를 반환한다
promise는 두 개의 메서드를 사용할 수 있는데 then과 catch이다. 둘 다 콜백 함수를 받는다.
.then
fetch를 통해서 실행한 결과가 성공했을 때 then으로 전달된 콜백 함수가 호출된다.
그 콜백함수가 호출되면서 결과값이 있다면 첫 번째 파라미터로 받을 수 있다.
fetched.then((result)=>{});
.catch
fetch를 통해서 실행한 결과가 실패한다면 catch 안으로 전달된 콜백함수가 호출된다.
파라미터로 이유를 알려준다.
fetched.catch((reason)=>{});
그래서 데이터를 받아오는 공식처럼 사용되는 아래 코드를 보면
이전까지는 그냥 외우다시피 하면서 썼었는데 이번에 promise에 대해 공부하면서
이제 더 이해가 되는 것 같다
fetch('http://example.com/movies.json')
.then((response) => response.json()) // response.json() => 아직 promise상태
.then((data) => console.log(data));
async / await
async
async는 function 앞에 위치하는데 async가 붙은 함수는 반드시 promise를 반환하고,
promise가 아닌 것은 프라미스로 감싸 반환한다.
Const a = async () => {}
await
자바스크립트는 await 키워드를 만나면 프라미스가 처리될 때까지 기다린다.
Promise.then으로 프로미스를 벗겨서 promise 안의 값을 꺼내올 수 있다.
데이터를 받아오는 용도가 아니다
예시) 모던 JavaScript 튜토리얼을 참고하였음.
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("완료!"), 1000)
});
let result = await promise; // 프라미스가 이행될 때까지 기다림 (*)
alert(result); // "완료!"
}
f();
async 함수가 아닌데 await을 사용하면 문법 에러가 발생한다.
비동기 프로그래밍을 하는 방식
callback, promise-then, async/await
연습용으로 사용하기 좋은 json 파일 제공해주는 사이트
https://jsonplaceholder.typicode.com/
JSONPlaceholder - Free Fake REST API
{JSON} Placeholder Free fake API for testing and prototyping. Powered by JSON Server + LowDB. Tested with XV. As of Oct 2021, serving ~1.7 billion requests each month.
jsonplaceholder.typicode.com
'JavaScript' 카테고리의 다른 글
[JavaScript] use strict (0) | 2022.10.18 |
---|---|
[JavaScript] cookie (0) | 2022.06.23 |
[JavaScript] 배열에 숫자, 알파벳 등 담아내기 (0) | 2022.05.18 |
[라이브러리] chart.js (0) | 2022.05.18 |
[라이브러리] moment cdn, npm (0) | 2022.05.17 |