| μΌ | μ | ν | μ | λͺ© | κΈ | ν |
|---|---|---|---|---|---|---|
| 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 |
- Node.js
- js
- μ»΄ν¬λνΈ
- μ€νμμ€
- κ°μ²΄
- npm
- μ»΄ν¨ν°κ³΅ν
- react
- μλ°
- μλ°μ€ν¬λ¦½νΈ
- μ’μμμΆκ°
- νμ΄νλΌμΈ
- gui
- CS
- API
- 리μ‘νΈ
- Express
- νλ‘μ νΈνκ³
- μΉ
- νμ μ€ν¬λ¦½νΈ
- λ°μ΄ν°λ² μ΄μ€
- post
- κΉ
- λΈλμΉ
- μμΈμ²λ¦¬
- 리ν©ν λ§
- onClickμ€λ₯
- λ³μ
- νλ‘κ·Έλλ¨Έμ€
- κΉνλΈ
- Today
- Total
Nevertheless
λκΈ°μ λΉλκΈ° λ³Έλ¬Έ
λκΈ°
μ¬λ¬ κ°μ μμ μ΄ μμ λ μμ λ€μ μμλλ‘ ν λ²μ νλμ©λ§ μ²λ¦¬νλ λ°©μ
β‘οΈ μλ°μ€ν¬λ¦½νΈλ "λκΈ°"μ μΌλ‘ μ½λλ₯Ό μ€ννλ€.
β‘οΈ λ§μ½ νλμ μμ μ΄ μμ£Ό μ€λ κ±Έλ¦°λ€λ©΄, κ·Έ μμ μ΄ λλκΈ° μ κΉμ§λ λ€μ μμ μ μ€νν μ μκΈ° λλ¬Έμ νλ‘κ·Έλ¨ μ±λ₯μ΄ μ νλλ€.
β‘οΈ μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μλ°μ€ν¬λ¦½νΈμμλ λΉλκΈ° λ°©μμ μ¬μ© ( μλ°μ€ν¬λ¦½νΈ μμ§μ μ€λ λκ° 1κ°)
λΉλκΈ°
- λκΈ°μ μ΄μ§ μλ€, μμ μ μμλλ‘ μ²λ¦¬νμ§ μμ
- μ¬λ¬ κ°μ μμ μ΄ μ£Όμ΄μ‘μ λ μμ μμ μ΄ μ’ λ£λμ§ μμλ κΈ°λ€λ¦΄ νμ μμ΄ λ€λ₯Έ μμ μ λμμ μ§νμν€λ κ²μ΄ κ°λ₯
console.log(1);
setTimeout(()=>{
console.log(2);
},3000);
console.log(3);
// 1
// 3
// 2
Q. μλ°μ€ν¬λ¦½νΈ μμ§μ μ±κΈ μ€λ λλΌκ³ νλλ° μ΄λ»κ² λμμ μμ μ μ²λ¦¬νλκ°?
A. λΉλκΈ° μμ λ€μ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μλ Web APIs(μΉ λΈλΌμ°μ κ° μ§μ κ΄λ¦¬νλ λ³λμ μμ)μμ μ€νλλ€.

λΉλκΈ° μμ μ²λ¦¬νκΈ°
1. μ½λ°± ν¨μ
// μμμ μ£Όλ¬Ένλ μν©
function orderFood(callback){
setTimeout(()=>{
const food="λ‘λ³Άμ΄";
callback(food);
},3000);
}
function cooldownFood(food,callback){
setTimeout(()=>{
const cooldownedFood = `μμ ${food}`;
callback(cooldownedFood);
},2000);
}
function freezeFood(food, callback) {
setTimeout(()=>{
const freezedFood = `λλλ ${food}`
callback(freezedFood);
},1500);
}
// μ΄κ² λ°λ³΅λλ©΄ μ½λ°± μ§μ₯μ λΉ μ§κ² λλ€
orderFood((food) => {
console.log(food);
cooldownFood(food,(cooldownedFood)=>{
console.log(cooldownedFood);
freezeFood(cooldownedFood, (freezedFood)=>{
console.log(freezedFood);
});
});
});
// λ‘λ³Άμ΄
// μμ λ‘λ³Άμ΄
// λλλ μμ λ‘λ³Άμ΄
2. Promise
: λΉλκΈ° μμ μ ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μλλ‘ λμμ£Όλ μλ°μ€ν¬λ¦½νΈμ λ΄μ₯ κ°μ²΄

Promise κ°μ²΄μ 3κ°μ§ μν
- λκΈ° (Pending) : μμ§ μμ μ΄ μλ£λμ§ μμ μν
- μ±κ³΅ (Fulfilled) : λΉλκΈ° μμ μ΄ μ±κ³΅μ μΌλ‘ λ§λ¬΄λ¦¬ λ μν
- μ€ν¨ (Rejected) : λΉλκΈ° μμ μ΄ μ€ν¨ν μν
function add10(num){
const promise = new Promise((resolve,reject) => {
// λΉλκΈ° μμ
μ€ννλ ν¨μ
// executor
setTimeout(()=>{
if(typeof num==="number"){
resolve(num+10); // Promise κ°μ²΄μ μν => μ±κ³΅
}
else {
reject("num μ΄ μ«μκ° μλλλ€."); // μ€ν¨
}
},2000);
});
return promise;
}
// then λ©μλ , λΉλκΈ° μμ
μ΄ μ±κ³΅νμ λλ§ μν
// => κ·Έ νμ
add10(0)
.then((result)=> {
console.log(result);
retrun add10(result);
})
.then((result)=> {
console.log(result);
return add10(undefined);
})
.then((result)=> {
console.log(result);
})
.catch((error) => {
console.log(error);
});
3. async / await
// async
// μ΄λ€ ν¨μλ₯Ό λΉλκΈ° ν¨μλ‘ λ§λ€μ΄μ£Όλ ν€μλ
// ν¨μκ° νλ‘λ―Έμ€λ₯Ό λ°ννλλ‘ λ³νν΄μ£Όλ κ·Έλ° ν€μλ
async function getData() {
return new Promise((resolve, reject) => {
setTimeout(()=> {
resolve({
name:"μ΄μ ν",
id:"winterlood",
});
},1500);
});
}
// await
// async ν¨μ λ΄λΆμμλ§ μ¬μ©μ΄ κ°λ₯ν ν€μλ
// λΉλκΈ° ν¨μκ° λ€ μ²λ¦¬λκΈ°λ₯Ό κΈ°λ€λ¦¬λ μν
// then λ©μλλ₯Ό μΈ νμ μμ
async function printData() {
const data = await getData();
console.log(data);
}
printData();
μΆμ²
ν μ ν¬κΈ°λ‘ μλΌ λ¨Ήλ 리μ‘νΈ(React.js) : κΈ°μ΄λΆν° μ€μ κΉμ§
'π₯οΈWeb > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| μλ°μ€ν¬λ¦½νΈ μ¬ν (0) | 2025.09.16 |
|---|---|
| var μ let κ³Ό const (2) | 2025.06.17 |
| λ³μ(Variable) λ? (0) | 2025.06.16 |