async function fuc(){
1+1
}
이 함수 자체가 Promise가 됨. 따라서 이 함수를 실행할 때 뒤에 then()을 붙일 수 있다.
(함수를 실행하면, 그 자리에 Promise 인스턴스가 남음)
func().then(function(){
console.log('성공!')
});
함수 안에서 연산한 결과를 then 안에서 사용하고 싶다면,
async function cal(){
return 1+1;
}
cal().then(function(result){ console.log(result) } );
이렇게 return 사용하면 됨.
어떤 function 안에서 연산을 실행한 뒤, 성공/실패를 판정해주는 Promise를 만들고 싶다면
async function func2(){
var cal = new Promise((resolve,reject)=>{
var result = 1+1;
resolve();
});
cal.then( console.log('성공입니다') );
}
func2();
이렇게 작성하면 된다. 이것을 더 간단하게 만든다면
async function func2(){
var cal = new Promise((resolve,reject)=>{
var result = 1+1;
resolve(result);
});
var result = await cal;
console.log(result); //연산결과가 담기게 됨
}
func2();
이렇게 then 대신 await를 사용하면 됨.
await은 cal 이라는 Promise를 기다린 뒤, 완료되면 결과를 변수에 담아달라 라는 뜻.
async function add(){
var cal = new Promise((resolve,reject)=>{
reject(); //실패판정
});
try{
var result = await cal
}catch{
console.log('실패할 경우 실행될 코드');
}
try-catch : try 안의 코드가 에러가 날 경우, catch 구문을 실행해 달라.