[10λΆ ν μ½ν‘] π μΉ΄μΌμ νλ‘ νΈμλμ λΉλκΈ°(16λΆ) λ₯Ό λ³΄κ³ μ 리νλ©΄μ μΆκ°μ μΈ λ΄μ©μ΄ μλ κΈμ λλ€ :)
<br/>
μλ°μ€ν¬λ¦½νΈ κ°λ°μλ€μ κ½€ μ€λ μκ° λμ λΉλκΈ° μ²λ¦¬λ₯Ό μν΄ μ½λ°± ν¨μλ₯Ό μ¬μ©ν΄μμ΅λλ€. νμ§λ§ μμλ λ¨μν μ΄ λ°©λ²λ§μΌλ‘ λΉλκΈ°λ₯Ό μ²λ¦¬νλ μ½λλ κ±°μ λ³΄μ§ λͺ»ν κ²μ λλ€.
μ½λ°± κΈ°λ°μ λΉλκΈ° μ²λ¦¬ λ°©μμ΄ κ°μ§κ³ μμλ νκ³μ κ·Έ λμμ μΌλ‘ μΆνν Promise
, Async Function
μ΄ ν΄κ²°ν΄κ³ μ ν κ²μ΄ 무μμΈμ§ μ΄ν΄λ³΄κ² μ΅λλ€.
<br/>
μ μ΄μ μμ (Inversion Of Control)
function BrowserTasks() {
// μ μ΄μ λμ
console.log('sync task');
asyncRequest(asyncTask);
}
function asyncRequest(callBackFn) {
// λΉλκΈ° μμ²κ³Ό ν¨κ» μ λ¬λ μ½λ°±μ
// μΈλΆ λΌμ΄λΈλ¬λ¦¬μ λν μμ‘΄μ±μ κ°μ Έμ μ μ΄κΆμ μ£Όμ²΄κ° λ€λ°λλλ€.
// μ½λ°± λ΄λΆμμ λ°μ΄ν°μ λν μμΈμ²λ¦¬λ κ°λ₯ν΄λ
// λΉλκΈ° μμ²-μ½λ°± νΈμΆλ‘ μ΄μ΄μ§λ νλ¦μ μΈλΆμμ κ΄μ°°νκ±°λ μ μ΄ν μ μμ΅λλ€.
// βοΈμ΄λ κ² μ μ΄κΆμ΄ λ€λ°λλ νμμ 'μ μ΄μ μμ 'μ΄λΌ ν©λλ€.
ajax('url', function(data) {
callBackFn(data);
});
}
funciton asyncTask(data) {
console.log(data);
}
<br/>
μ μ κ° μ΄λ€ μνμ ꡬ맀 λ²νΌμ λλ μλ, μλ²μ μμ²μ 보λ΄λ μ½λ°±μ΄ μ΄μ κ°μ μμ μ€ νλλΌλ ν΄λΉλλ€λ©΄ μ΄λ»κ² λ κΉμ? μ΄λ¬ν λ²κ·Έλ 곧 맀μΆμ μ§κ²°λλ λ¬Έμ λ₯Ό λ§λλλ€. λ μ¬κ°ν κ²μ μ¬κΈ°μ λμ΄ν μΌμ΄μ€λ μ΅μνμ κ²½μ°μ΄κ³ λ°©κΈμ μνΈμ λν λ§μ μμ μ€ νλμΌ λΏμ΄λΌλ μ μ λλ€.