Web/Back_java 기초
Java_Promise
잉_민
2022. 2. 4. 11:10
728x90
반응형
프라미스 new Promise 형식
resolve(_valut)
.then(_result)
new Promise((resolve)=>{
resolve(_value)
})
.then((result)=>{
console.log(result)
})
//_value값이 프린트된다.
resolve(값) ---> .then(함수(result)
{
return new Promise((resolve)=>{
setTimeout(()=>{
resolve(값보내기) },500)
})
})
.then(결과받기)
객체는 선언할 때 new 붙여준다
[프라미스를 사용하는 이유]
then은 resolve의 값을 기다려준다.
promise에 setTimeout을 걸어주니까
then이 값을 기다려준다.
*예제
<html>
<body>
프라미스 객체
</body>
</html>
<script>
new Promise((resolve)=>{
let ramenList = '삼양라면'
resolve(ramenList)
})
.then((result)=>{
console.log(result);//삼양라면
ramenList = result + ','+'진라면'
return new Promise ((resolve) =>{
setTimeout(()=>{
resolve(ramenList)
},500)
})
})
.then((result)=>{
console.log(result)
ramenList = result + ','+ '신라면'
return new Promise((resolve)=>{
setTimeout(()=>{
resolve(ramenList)
},500)
})
})
.then((result)=>{
console.log(result);
ramenList = result + ','+ '너구리'
return new Promise ((resolve) =>{
setTimeout(()=>{
resolve(ramenList)
},500)
})
})
.then((result)=>{
console.log(result);
})
</script>
위의 코드를 함수로 단순화
<html>
<body>
프라미스 객체
</body>
</html>
<script>
const addRamen = (name,prevName) =>{
return new Promise ((resolve) => {
setTimeout(()=>{
let newName = ''
if(prevName){ //프리브네임이 없으면 false
newName = `${prevName},${name}`
}
else{
newName = name
}
console.log(newName)
resolve(newName)
},500)
})
}
addRamen('삼양라면')
.then ((result)=>addRamen('신라면',result))//newName 삼양라면,진라면 `${prevName},${name}`
.then ((result)=>addRamen('진라면',result))
.then ((result)=>addRamen('너구리라면',result))
</script>
**리턴에 프라미스 함수 사용! (셋 타임 : 데이터를 받아오는 시간.. 을 대신해서 함수 사용)
728x90
반응형