μ½λ°±(callback)μ νλ‘κ·Έλλ°μμ νΉμ μμ μ΄ μλ£λ νμ νΈμΆλλ ν¨μλ₯Ό μλ―Έν©λλ€.
μΌλ°μ μΌλ‘ λΉλκΈ° νλ‘κ·Έλλ° λλ μ΄λ²€νΈ κΈ°λ° νλ‘κ·Έλλ°μμ λ§μ΄ μ¬μ©λλ©°, νΉμ μ΄λ²€νΈκ° λ°μνκ±°λ μμ μ΄ μλ£λμμ λ μ€νν μ½λλ₯Ό μ§μ νλ λ°©λ²μ λλ€.
- λΉλκΈ° μ€ν:
- μ½λ°±μ λΉλκΈ° μμ μ΄ μλ£λ νμ νΈμΆλ©λλ€. μλ₯Ό λ€μ΄, λ°μ΄ν° μμ²μ΄ μλ£λμκ±°λ νμΌ μ½κΈ°κ° λλ¬μ λ, ν΄λΉ μμ μ΄ μλ£λμμμ μ리λ μ½λ°± ν¨μκ° νΈμΆλ©λλ€.
- ν¨μ μΈμλ‘ μ λ¬:
- μ½λ°± ν¨μλ λ€λ₯Έ ν¨μμ μΈμλ‘ μ λ¬λλ©°, μ£Όλ‘ μ΄λ²€νΈ 리μ€λλ λΉλκΈ° APIμμ μ¬μ©λ©λλ€.
JavaScriptμμ λΉλκΈ° μμ μ μνν λ μ½λ°±μ μ¬μ©νλ μλ₯Ό λ€μ΄λ³΄κ² μ΅λλ€.
function fetchData(callback) {
setTimeout(() => {
const data = "Fetched Data";
callback(data); // λ°μ΄ν°κ° μ€λΉλλ©΄ μ½λ°± νΈμΆ
}, 1000); // 1μ΄ νμ λ°μ΄ν° κ°μ Έμ€κΈ°
}
function processData(data) {
console.log("Processing: " + data); // μ½λ°±μμ μ²λ¦¬
}
// fetchData ν¨μ νΈμΆ μ processDataλ₯Ό μ½λ°±μΌλ‘ μ λ¬
fetchData(processData);- μ μ°μ±: μ½λ°±μ ν΅ν΄ μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ , λ€μν μμ μ μ²λ¦¬ν μ μμ΅λλ€.
- λΉλκΈ° μ²λ¦¬: λΉλκΈ° μμ μ μ½κ² κ΄λ¦¬ν μ μμ΄, μ¬μ©μ μΈν°νμ΄μ€κ° μ°¨λ¨λμ§ μκ³ λΆλλ½κ² λμνλλ‘ ν©λλ€.
μ½λ°±μ μ¬μ©ν λλ λ©λͺ¨λ¦¬ λμλ₯Ό λ°©μ§νκΈ° μν΄, λ μ΄μ νμνμ§ μμ μ½λ°±μ λν μ°Έμ‘°λ₯Ό ν΄μ ν΄μΌ ν©λλ€. νΉν μ΄λ²€νΈ 리μ€λμ ν¨κ» μ¬μ©ν λλ μ£Όμκ° νμν©λλ€.
μ½λ°±μ νΉμ μμ μ΄ μλ£λ ν νΈμΆλλ ν¨μλ‘, λΉλκΈ° μμ λ° μ΄λ²€νΈ κΈ°λ° νλ‘κ·Έλλ°μμ νν μ¬μ©λ©λλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ μ μ°μ±κ³Ό μ¬μ¬μ©μ±μ λμ΄κ³ , λΉλκΈ° μ²λ¦¬λ₯Ό ν¨κ³Όμ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€.