콜백 함수: 비동기식 작업 결과 가져오기
2836 단어 js 노트
콜백 함수: 비동기식 작업 결과 가져오기
다음은 저희가 먼저 예를 하나 볼게요.
function fn() {
setTimeout(function () {
var data = 'hello'
},1000)
}
타이머에 있는 데이터를 얻으려면 어떻게 해야 할지 많은 분들이 생각하실 거예요.
function fn() {
var data = ''
setTimeout(function () {
data = 'hello'
},1000)
return data
}
console.log(fn())
함수의 실행 결과는'빈 문자열'로 타이머에 데이터를 가져오지 않았습니다
이것은 타이머가 내부 함수를 1s 후에 실행하고 내부
data
데이터가 1s 후에 업데이트되기 때문에 fn()
실행하면 바로 결과를 되돌려줍니다.타이머 내부에서 실행되고 업데이트된
data
를 가져오는 리셋 함수가 필요합니다.function fn(callback) {
setTimeout(function () {
var data = 'hello'
callback(data)
},1000)
}
fn(function (data) {
console.log(data)
})
fn에 함수를 매개 변수로 전송하고 타이머 내
callback(data)
에 호출하여 타이머 내의 데이터를 매개 변수로 출력합니다이해하기 편리하도록 상기 코드를 분할하다
function fn(callback) {
setTimeout(function () {
var data = 'hello'
callback(data)
},1000)
}
fn(callback)
function callback(data) {
console.log(data);
}