티스토리 뷰

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
반응형

'Web > Back_java 기초' 카테고리의 다른 글

Java_async await  (0) 2022.02.04
Java_ 비동기/ 콜백 함수  (0) 2022.02.04
Java_기초  (0) 2022.02.04
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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 31
글 보관함
반응형