🌊 TIL : 2023년 3월 20일
오늘의 알고리즘
: 문제 자체 유출이 금지되어 있기 때문에 내가 푼 방법만 표시..
문제
: 문자열을 입력받아 순서가 뒤집힌 문자열을 리턴
내가 푼 방법
- 문자열이 0인 것은 빈 문자열로 리턴
- Array.from을 이용하여 주어진 문자를 배열로 만들기
- sort 이용하여 정렬 후 리버스를 하고, 문자열이기 때문에 + 연산자를 사용하고자 결심
- 그리하여 reduce로 문제 풀이!
타이머 API
질문 리스트
- Promise 실행 함수가 가지고 있는 두 개의 파라미터 resolve 와 reject 는 각각 무엇을 의미하나요?
→
resolve : 주어진 값으로 이행하는 Promise 객체 반환. 이때 지정한 값이 then 가능한 값인 경우 Promise.resolve()가 반환하는 promise는 then 메서드를 따라가서 자신의 최종 상태를 결정, 그 이외의 경우 반환된 promise는 주어진 값으로 이행.
reject : 주어진 사유로 거부하는 Promise 객체를 반환 - resolve, reject함수에는 전달인자를 넘길 수 있습니다. 이때 넘기는 전달인자는 어떻게 사용할 수 있나요?
- new Promise()를 통해 생성한 Promise 인스턴스에는 어떤 메서드가 존재하나요? 각각은 어떤 용도인가요?
→
then : promise에 이행과 거부처리기 콜백을 추가, 콜백이 호출될 경우 그 반환값으로 이행하며 호출되지 않을 경우 처리된 값과 상태 그대로 처리 되는 새로운 Promise를 반환
catch : Promise에 거부 처리기 콜백을 추가하고 그 반환값으로 이행하며 호출되지 않을 경우, 즉 이전 프로미스가 이행하는 경우 이행한 값을 그대로 사용해 이행하는 새로운 Promise 반환
finally : Promise의 이행과 거부 여부 상관 없이 처리될 경우 항상 호출 하는 처리기 콜백을 추가하고 이행한 값 그대로 이행하는 새로운 Promise를 반환 - Promise.prototype.then 메서드는 무엇을 리턴하나요?
→ 필요한 일을 수행(콜백함수) - Promise.prototype.catch 메서드는 무엇을 리턴하나요?
→ 에러를 처리한다. - Promise의 세 가지 상태는 각각 무엇이며, 어떤 의미를 가지나요?
→
대기(pending) : Promise를 이행하지도, 거부하지도 않은 초기상태.
이행(fulfilled) : Promise의 연산이 성공적으로 완료 됨.
거부(rejected) : Promise가 에러가 난 상태, 연산이 실패함, - await 키워드 다음에 등장하는 함수 실행은 어떤 타입을 리턴할 경우에만 의미가 있나요?
→ Promise를 기다리기 위해 사용된다. - await 키워드를 사용할 경우, 어떤 값이 리턴되나요?
오늘 배운 것
: 비동기를 왜 고민하게 되었나? 다른사람에게 일을 시키는 것처럼 다른 사람 혹은 내 컴퓨터의 유휴 자원을 활용하기 위해서 고민하다가 생겨난 방법이다.
동기적 : 하나의 작업이 끝나면 다음 작업이 진행되는 형태
비동기적 : 하나의 작업이 끝나지 않아도 다음 작업이 같이 진행되는 형태
비동기의 방식 3가지
- callback
- promise
- async/await
비동기 작업을 할 때 순서를 지켜야만 하면 callback 내에다가 코드를 적을 수 있다.
let promise = new Promise((resolve, reject) => {
// 1. 정상적으로 처리되는 경우
// resolve의 인자 값을 전달할 수 있다.
//무언가 비동기 작업을 한다.
resolve('ok');
// 작동이 문제가 되면 reject
reject(new Error('error'));
});
자칫하다간 callback hell이 될 수 있으니 주의할 것~
어려웠던 부분
: Promise 방식으로 .then을 연결할 때 제대로 연결 된게 맞는지 자꾸 확인 하게 됨.. 그리고 코드 생략 하는 것도 조금 어려운 듯..
느낀점
: 아직 가슴으로 와닿는 개념은 아니고 조금 더 연습해봐야할 것 같다.
더 공부할 것
: 아마 내일 마저 페어프로그래밍 진행하고 공부할 듯 하다 b
'🐹 TIL > Daily' 카테고리의 다른 글
[코드스테이츠/27DAY] S2U4 - [React] Intro (2) | 2023.03.22 |
---|---|
[코드스테이츠/26DAY] S2U3 - [JS/Node] 비동기 Fetch() (2) | 2023.03.21 |
[TIL : 230318] 클래스와 배열 고차함수 (2) | 2023.03.19 |
[코드스테이츠/24DAY] S2U3 - [JS/Node] 비동기 (2) | 2023.03.18 |
[코드스테이츠/23DAY] S2U2 - [JavaScript] 객체 지향 프로그래밍 (2) | 2023.03.16 |