-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path_6-1-콜백 Callback.js
44 lines (34 loc) · 1.14 KB
/
_6-1-콜백 Callback.js
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
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
비동기 상황 예시는 setTimeout()으로 구현
*/
/* 1. 콜백 : Callback */
function runWithCallback(callback) {
let text = "뽈롱"
callback(text) // 내부 처리가 끝나고...
}
runWithCallback(function(text) {
console.log(text)
})
runWithCallback(content => { // 익명함수는 뭐... 화살표 함수로도 가능
console.log(content)
})
console.log("갑니다!")
setTimeout(function() {
console.log("나는!!! 호출을!!! 했다!!!!")
}, 1000) // 실제 콜백으로도 이렇게 비동기를 처리
console.log("갔어...")
setTimeout(function() {
console.log("콜백 지옥에")
setTimeout(function() {
console.log("오신 것을")
setTimeout(function() {
console.log("환영합니다")
setTimeout(function() {
console.log("NAGA")
}, 1000)
}, 1000)
}, 1000)
}, 1000)
// 위 형태가 콜백 지옥이다.
// 콜백은 콜백 지옥(Callback Hell : 어려운 비동기 제어와 코드 가시성 하락)의 단점이 있다.
// ES6 부턴 이런 단점을 극복하기 위해 Promise를 표준으로 채택했다.