Document/먕선생의 코딩교실

516 강의 판서 내용 (callback/promise)

neeon 2023. 5. 16. 18:07
728x90


// settimeout : 실행할 함수, 초(밀리세컨 단위)


[callback]

콜백함수 : 간단하게 다른 함수에 매개변수로 넘겨준 함수를 의미
매개변수로 넘겨받은 함수는 일단 매개변수 먼저 넘겨받아둔 상태에서
일정 시점(때)가 되면 나중에 호출(call back)한다는 의미


// 콜백함수가 필요한 이유
1. 변수의 유효범위 (scope)
2. 동기/비동기(synchronous/Asynchronous)
 -> 이런 걸 위해서 함수를 활용하는 하나의 방법론적인 부분

유용한데.. 내가 a~z까지 console 찍는 행위를 제어하고 싶으면 코드가 너무 복잡해진다..
-> Callback Hell

-- 작성자 입장에서는 크게 문제가 안될 수도 있으나 이걸 추후에 누군가 유지보수 한다고 생각하면?
hell 이다.. 그래서 callback hell 

여러번 필요한데 여러번 쓰면 가독성 + 유지보수성이 떨어지는 행위를 막기 위해서 나타난게 promise 


[promise]

비동기 처리를 위한 하나의 패턴. callback 함수를 사용하게 된다.
es6 부터 적용된 개념
전통적인 callback 패턴이 가지는 단점 (ex callback hell, 에러처리 힘듬) 을 보완하면서
비동기 처리 시점을 명확하게 표현할 수 있게 해준다.

resolve 와 reject // 해결했다. 거절했다. 상태값으로 생각하면 된다.


---
promise all
-> 여러 개의 promise 들을 비동기적으로 실행하여 처리할 수 있는..

 


[basicChaining]
- getDataFromFilePromise를 이용해서 풀어야 합니다 // 2번 문제에서 export 해줬던 거 그거 이용해라

1. fs 모듈을 직접 사용하는 것이 아닙니다.
// 뭔가 간접적으로 불러와야 하는 듯 ?

2. getDataFromFilePromise를 이용해, 'files/user1.json' 파일과 'files/user2.json' 파일을 불러오고, 
두 파일을 합쳐서 최종적으로 두 객체가 담긴 배열을 만드는 것이 목표입니다.
// 어떤 초기 배열 만들어서 push 해주면 되지 않을까?

3. 파일 경로를 찾을 때, user1Path 및 user2Path를 이용하세요.
// 기본적으로 작성되어 있던 변수? 활용 해주세요

4. then이 어떤 매개변수를 전달받는지에 대한 이해가 있어야 합니다.
// then 은 value 값을 받아올거다... 

5. then의 리턴이 무엇을 의미하는지 이해하고 있어야 합니다.
// 가공이 필요한 데이터로 가지고 온다. 그래서 사용하려면 json 파싱을 해줘야 한다.

6. 파일 읽기의 결과가 문자열이므로, JSON.parse를 사용해야 문제를 해결할 수 있습니다.
// json.parse(value)

728x90