(์ฑ๊ณตํ๋ฉด then(), ์คํจํ๋ฉด catch()๋ฅผ ์คํ)
์๋ก์ด ๊ธฐ๋ฅ์ด๋ผ๊ธฐ๋ณด๋ค๋ ์ฝ๋/ํจ์ ๋์์ธ ํจํด์ผ ๋ฟ์ด๋ค.
ajax ์์ฒญ, setTimeout, ์ด๋ฒคํธ๋ฆฌ์ค๋ ๋ฑ์ ์ฌ์ฉํ ๋ ์.
var ํ๋ก๋ฏธ์ค = new Promise();
ํ๋ก๋ฏธ์ค.then(function(){
})
var ํ๋ก๋ฏธ์ค = new Promise(function(resolve,reject){
resolve(); // ์ฑ๊ณต ํ์ ๋ด๋ฆผ -> then ์คํ๋จ
reject(); // ์คํจ ํ์ ๋ด๋ฆผ -> catch ์คํ๋จ
});
ํ๋ก๋ฏธ์ค.then(function(){
}).catch(function(){
})
var ํ๋ก๋ฏธ์ค = new Promise(function(resolve,reject){
var ์ด๋ ค์ด ์ฐ์ฐ = 1 + 1; // 1. ์ฐ์ฐ์ ๋จผ์ ํ๊ณ
resolve(); // 2. then ์ฝ๋ ์คํ
});
ํ๋ก๋ฏธ์ค.then(function(){
console.log('์ฑ๊ณตํ์ด์') // ์ถ๋ ฅ
}).catch(function(){
console.log('์คํจํ์ด์')
})
var ํ๋ก๋ฏธ์ค = new Promise(function(resolve,reject){
var ์ด๋ ค์ด ์ฐ์ฐ = 1 + 1;
resolve(์ด๋ ค์ด ์ฐ์ฐ); // ํ๋ผ๋ฏธํฐ๋ก ๊ฐ ๋๊น
});
ํ๋ก๋ฏธ์ค.then(function(๊ฒฐ๊ณผ){
console.log(๊ฒฐ๊ณผ) // 2 ์ถ๋ ฅ
}).catch(function(){
console.log('์คํจํ์ด์')
})
var ํ๋ก๋ฏธ์ค = new Promise(function(resolve,reject){
setTimeout(function(){
resolve();
},1000);
});
ํ๋ก๋ฏธ์ค.then(function(){
console.log('์ฑ๊ณตํ์ด์') // 1์ด ํ ์ถ๋ ฅ๋จ.
}).catch(function(){
console.log('์คํจํ์ด์')
})
: ๋น๋๊ธฐ๋ ์๊ด์์! ๊ทธ๋ฅ ์ฝ๋ฉ ์คํ์ผ์.
jQuery.ajax()
fetch()
-> promise๋ฅผ returnํจ.