🔓리덕스 미들웨어 청크의 역할은 무엇일까?
미들웨어는 리덕스에서 서버와의 통신을 위해 사용하는 것으로 dispatch 되자마자 바로 action이 리듀서로 달려가 새로운 state를 반환 해버리기 전 하는 행동을 할 수 있게 해줌!
이러한 미들웨어 중 많이 사용되는 것 중에 하나가 Redux-thunk
Thunk는
리덕스에서 많이 사용하고 있는 미들웨어 중 하나로, thunk를 사용하면 dispatch를 할때 객체가 아닌 '함수'를 dispatch할 수 있게 해준다.
그래서 중간에 하고자 하는 작업을 함수를 통해 넣을 수 있고, 그것이 중간에 실행되는 것!
dispatch(함수) → 함수실행 → 함수안에서 dispatch(객체)
🔓프로미스는 정확히 말하면 비동기가 아니다. 비동기와 프로미스는 각각 무엇일까?
만약 작업을 동기적으로 처리한다면 작업이 끝날때까지 기다리는 동안 중지상태로 다른 작업 할 수 없음.
하지만 비동기적으로 처리하면 흐름이 멈추지 않기 때문에 동시에 여러가지 작을 처리할 수 있고, 기다리는 과정에서 다른 함수도 호출 할 수 있다.
프로미스패턴
function findUser(id) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
const user = {
id: id,
name: 'my name is ' + id,
};
resolve(user);
}, 1000);
});
}
findUser('foo').then(function (user) {
console.log(user); // { id: 'foo', name: 'my name is foo' }
});
프로미스의 3가지 상태
🔓 TDZ(Temporal Dead Zone/일시적 사각지대)란?
TDZ ( Temporal Dead Zone )는 해석하면 "일시적 사각지대" 이다.
TDZ는 const, let, class 구문의 유효성에 영향을 미치는 중요한 개념이다.
TDZ는 선언 전에 변수를 사용하는 것을 허용하지 않는다.