νμ€ν¬ νμ λ§μ΄ν¬λ‘ νμ€ν¬ ν
2023 / 12 / 23 (ν )
νμ€ν¬ νμ λ€λ₯΄κ², λ§μ΄ν¬λ‘ νμ€ν¬ ν
λΌλ κ²λ μλ€.
μ΄λ²€νΈ 루νλ νλμ λ§μ΄ν¬λ‘ νμ€ν¬ νλ₯Ό κ°κ³ μλλ°, κΈ°μ‘΄μ νμ€ν¬ νμλ λ€λ₯Έ νμ€ν¬λ₯Ό μ²λ¦¬νλ€κ³ νλ€. μ¬κΈ°μ λ€μ΄κ°λ λ§μ΄ν¬λ‘ νμ€ν¬μλ λνμ μΌλ‘ Promise
κ° μλ€. μ΄ λ§μ΄ν¬λ‘ νμ€ν¬ νλ κΈ°μ‘΄ νμ€ν¬ νλ³΄λ€ μ°μ κΆμ κ°λλ€κ³ νλ€.
μ¦, setTimeout
κ³Ό setInterval
μ Promiseλ³΄λ€ λ¦κ² μ€νλλ€.
λ§μ΄ν¬λ‘ νμ€ν¬ νκ° λΉμ΄μμ λ κΉμ§ κΈ°μ‘΄ νμ€ν¬ νμ μ€νμ λ€λ‘ 미루μ΄μ§λ€κ³ νλ€.
<script>
function foo() {
console.log('foo')
}
function bar() {
console.log('bar')
}
function baz() {
console.log('baz')
}
setTimeout(foo , 0)
Promise.resolve().then(bar).then(baz)
</script>
μμ μ½λλ₯Ό μ€ννλ©΄ bar , baz , foo μμΌλ‘ μ€νλλ€.
νμ€ν Promiseκ° μ°μ κΆμ΄ μμμ μ μ μλ€.
κ° νμ€ν¬μ λ€μ΄κ°λ λνμ μΈ μμ
μ λ€μκ³Ό κ°λ€.
νμ€ν¬ ν : setTimeout , setInterval , setImmediate
λ§μ΄ν¬λ‘ νμ€ν¬ ν : process.nextTick , Promises.queueMicroTask, MutationObserver
κ·Έλ λ€λ©΄ λ λλ§μ μΈμ μ€ν λλκ²μΌκΉ
νμ€ν¬ νλ₯Ό μ€ννκΈ°μ μμ λ¨Όμ λ§μ΄ν¬λ‘ νμ€ν¬ νλ₯Ό μ€ννκ³ ,
μ΄ λ§μ΄ν¬λ‘ νμ€ν¬ νλ₯Ό μ€νν λ€μ λ λλ§μ΄ μΌμ΄λλ€κ³ νλ€.
κ° λ§μ΄ν¬λ‘ νμ€ν¬ ν μμ
μ΄ λλ λλ§λ€ ν λ²μ© λ λλ§ν κΈ°νλ₯Ό μ»κ² λλ€.
κ²°λ‘ μ μΌλ‘ λκΈ° μ½λλ λ¬Όλ‘ μ΄κ³ λ§μ΄ν¬λ‘ νμ€ν¬ λν
λ§μ°¬κ°μ§λ‘ λ λλ§μ μν₯μ λ―ΈμΉλ€λ κ²μ΄λ€.
λ°λΌμ λ§μ½ νΉμ λ λλ§μ΄ μλ°μ€ν¬λ¦½νΈ λ΄ λ¬΄κ±°μ΄ μμ κ³Ό μ°κ΄μ΄ μλ€λ©΄
μ΄λ₯Ό μ΄λ€ μμΌλ‘ λΆλ¦¬ν΄μ μ¬μ©μμκ² μ’μ μ ν리μΌμ΄μ κ²½νμ
μ κ³΅ν΄ μ€μ§ κ³ λ―Όν΄ λ³΄μμΌ νλ€.
μλ°μ€ν¬λ¦½νΈ νκ²½μμ λΉλκΈ° μ²λ¦¬κ° μ΄λ»κ² μ΄λ£¨μ΄μ§λμ§ μ΄ν΄λ³΄μλ€.
μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό μ€ννλ κ² μ체λ μ±κΈ μ€λ λλ‘ μ΄λ£¨μ΄μ Έμ λΉλκΈ°λ₯Ό μ²λ¦¬νκΈ° μ΄λ ΅μ§λ§ μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό μ€ννλ κ² μ΄μΈμ νμ€ν¬ ν , μ΄λ²€νΈ 루ν , λ§μ΄ν¬λ‘ νμ€ν¬ ν , λΈλΌμ°μ /Node.js API λ±μ΄ μ μ ν μνκ³λ₯Ό μ΄λ£¨κ³ μκΈ° λλ¬Έμ μ±κΈ μ€λ λλ‘λ λΆκ°λ₯ν λΉλκΈ° μ΄λ²€νΈ μ²λ¦¬κ° κ°λ₯ν΄μ§ κ²μ΄λΌκ³ νλ€.
β‘οΈ λ€μ κΈμμλ 리μ‘νΈμμ μμ£Ό μ¬μ©νλ λ¬Έλ²μ λν΄ μ΄ν΄λ³΄μ.