📚 TIL
코드숨 1주차 DAY 3, 모던 JavaScript 튜토리얼
🧪 1번 과제 수행하기
변수를 재할당하지 마라... 그렇다면 재할당할 수 없도록 선언하라는 것인가?
let 대신 const를 이용해서 배열로 선언했습니다 과제의 결과는 내일 알 수 있겠죠..
아닌 것 같은데... 여쭤볼 분이 없네요 ㅠㅠ 과제를 더 잘 해결하기 위해 지금은 이론공부를 해야겠어요
이대로라면 매일 과제를 제출해도 일요일까지 참잘했어요 도장을 못받을 것 같아요ㅠㅠㅠ아나
파트 1 - 코어 자바스크립트
🧪 프라미스와 async, await
콜백
- 함수의 두 번째 인수로 스크립트 로딩이 끝난 후 실행될 함수인 콜백(callback) 함수를 추가하면
두 번째 인수로 전달된 함수는 원하는 동작이 완료되었을 때 실행
프라미스
- promise 객체 : executor와 결과나 에러를 받을 소비 함수를 이어주는 역할
let promise = new Promise(function(resolve, reject) {
// executor (실행자, 실행 함수)
});
- executor : 자동으로 실행되고 처리가 끝나면 executor는 처리 성공 여부에 따라 resolve나 reject를 호출
- resolve(value) : 일이 성공적으로 끝난 경우, 그 결과를 나타내는 value와 함께 호출
- reject(error) : 에러 발생 시 에러 객체를 나타내는 error와 함께 호출
- new Promise 생성자가 반환하는 promise 객체는 다음과 같은 내부 프로퍼티를 가짐
- state : 처음엔 "pending"(보류)이었다 resolve가 호출되면 "fulfilled", reject가 호출되면 "rejected"로 변함
- result : 처음엔 undefined이었다 resolve(value)가 호출되면 value, reject(error)가 호출되면 error로 변함
- 소비함수 : .then, .catch, .finally 메서드를 사용해 등록
프라미스 체이닝
- 순차적으로 처리해야 하는 비동기 작업이 여러 개 있을 때 이용
- .then 또는 catch/finally 핸들러(어떤 경우도 상관없음)가 프라미스를 반환하면
나머지 체인은 프라미스가 처리될 때까지 대기
- 처리가 완료되면 프라미스의 result(값 또는 에러)가 다음 체인으로 전달
프라미스와 에러 핸들링
- reject()가 호출되거나 에러가 던져지면 .catch에서 이를 처리
- 핸들러에선 에러를 분석하고 알 수 없는 에러는 다시 던질 수 있음
프라미스 API
Promise 클래스의 5가지 정적 메서드
- Promise.all(promises) – 모든 프라미스가 이행될 때까지 기다렸다가 그 결괏값을 담은 배열을 반환
- Promise.allSettled(promises) – 모든 프라미스가 처리될 때까지 기다렸다가 그 결과(객체)를 담은 배열을 반환
- Promise.race(promises) – 가장 먼저 처리된 프라미스의 결과 또는 에러를 담은 프라미스를 반환
- Promise.resolve(value) – 주어진 값을 사용해 이행 상태의 프라미스를 만듦
- Promise.reject(error) – 주어진 에러를 사용해 거부 상태의 프라미스를 만듦
프라미스화
프라미스화(promisification) : 콜백을 받는 함수를 프라미스를 반환하는 함수로 바꾸는 것
마이크로태스크
- 프라미스 핸들링은 항상 비동기로 처리
- 따라서 .then/catch/finally 핸들러는 항상 현재 코드가 종료되고 난 후에 호출
- 어떤 코드 조각을 .then/catch/finally가 호출된 이후에 실행하고 싶다면
.then을 체인에 추가하고 이 안에 코드 조각을 넣으면 됨
async와 await
- async
async function f() {
return 1;
}
function 앞에 async를 붙이면 해당 함수는 항상 프라미스를 반환
- await
let value = await promise;
자바스크립트는 await 키워드를 만나면 프라미스가 처리(settled)될 때까지 기다림
결과는 그 이후 반환
await는 async 함수 안에서만 동작
😁 오늘 한 일
📕 공부하기
- 오늘은 코드숨 과제를 하고 모던 자바스크립트 튜토리얼을 공부했어요
- 깃 다루는것부터 말썽이었네요 ㅠ 어렵습니다
- 생각해보니 아직 자바스크립트 공부를 시작한 지 한달도 안되었더라고요
- 왜이렇게 모르겠지 했는데 그냥 모를 수 밖에 없었어요 ㅎ..파이팅
🥧 친구들과 맛있는 것 먹기
- 오늘 친구들이랑 스터디카페에서 공부하고 친구네 집에서 맛있는 요리를 먹었어요
- 이마트에서 장보고 와서 만들었어요!! 물론 저는 보조로 ㅋㅋ
- 대학원 다니느라 요새 거의 못본 친구도 오랜만에 만났어요
- 여섯시까지 놀다가 잤어요..다음날 12시에 일어났어요 ㅎㅎ
'코딩 > TIL' 카테고리의 다른 글
TIL #210122 (0) | 2021.01.22 |
---|---|
TIL #210121 (0) | 2021.01.21 |
TIL #210119 (0) | 2021.01.19 |
TIL #210118 (0) | 2021.01.18 |
TIL #210117 (0) | 2021.01.17 |