κ°μ
β’
Promise
β’
Promise μν
β’
μ£Όμ λ©μλ
β’
κΈ°λ³Έ μμ μ½λ
β’
API νΈμΆ μμ μ½λ
Promise
λΉλκΈ° μμ
μ μ±κ³΅ λλ μ€ν¨ κ²°κ³Όλ₯Ό μ²λ¦¬νλ κ°μ²΄
βν΄λΉ μμ μ΄ μλ£λκ±°λ μ€ν¨νμ λ κ²°κ³Όλ₯Ό μ 곡νκ² λ€λ μ½μβ
Promise μν
μν | μ€λͺ
| μν μ ν λ°©λ² |
Pending | μ΄κΈ° μνλ‘, λΉλκΈ° μμ
μ΄ μμ§ μλ£λμ§ μμ μνμ
λλ€. | λΉλκΈ° μμ
μ΄ μμλ λ |
Fulfilled | λΉλκΈ° μμ
μ΄ μ±κ³΅μ μΌλ‘ μλ£λ μνμ
λλ€. resolve ν¨μκ° νΈμΆλμ΄ μ΄ μνλ‘ μ νλ©λλ€. | resolve ν¨μκ° νΈμΆλ λ |
Rejected | λΉλκΈ° μμ
μ΄ μ€ν¨ν μνμ
λλ€. reject ν¨μκ° νΈμΆλμ΄ μ΄ μνλ‘ μ νλ©λλ€. | reject ν¨μκ° νΈμΆλ λ |
μ£Όμ λ©μλ
λ©μλ | μ€λͺ
| νΈμΆ μμ |
then | Promiseκ° μ΄νλμμ λ λλ κ±°λΆλμμ λ νΈμΆλλ μ½λ°±μ μ€μ ν©λλ€. onFulfilledλ Promiseκ° μ±κ³΅νμ λ, onRejectedλ μ€ν¨νμ λ νΈμΆλ©λλ€. | Promiseκ° μ΄νλκ±°λ κ±°λΆλμμ λ |
catch | Promiseκ° κ±°λΆλμμ λ νΈμΆλλ μ½λ°±μ μ€μ ν©λλ€. thenμ λ λ²μ§Έ μΈμμ λμΌν μν μ ν©λλ€. | Promiseκ° κ±°λΆλμμ λ |
finally | Promiseκ° μ΄νλλ κ±°λΆλλ μκ΄μμ΄ νμ μ€νλλ μ½λ°±μ μ€μ ν©λλ€. | Promiseκ° μ΄νλκ±°λ κ±°λΆλμμ λ νμ νΈμΆ |
κΈ°λ³Έ μμ μ½λ
let promise = new Promise(function(resolve, reject) {
// λΉλκΈ° μμ
μν
let success = true; // μμ
μ΄ μ±κ³΅νλ€κ³ κ°μ
if (success) {
resolve("μμ
μ±κ³΅");
} else {
reject("μμ
μ€ν¨");
}
});
promise.then(function(result) {
console.log(result); // μμ
μ±κ³΅ μ μ€ν
}).catch(function(error) {
console.error(error); // μμ
μ€ν¨ μ μ€ν
}).finally(function() {
console.log("μμ
μλ£"); // μ±κ³΅ λλ μ€ν¨μ κ΄κ³μμ΄ νμ μ€ν
});
JavaScript
볡μ¬
API νΈμΆ μμ μ½λ
function fetchData(url) {
return new Promise((resolve, reject) => {
fetch(url)
.then(response => {
if (!response.ok) {
throw new Error("Network response was not ok");
}
return response.json();
})
.then(data => resolve(data))
.catch(error => reject(error));
});
}
fetchData("https://api.example.com/data")
.then(data => console.log(data))
.catch(error => console.error("Error:", error))
.finally(() => console.log("Fetch attempt finished"));
JavaScript
볡μ¬