Web/Back_java 기초

Java_ 비동기/ 콜백 함수

잉_민 2022. 2. 4. 10:05
728x90
반응형

- 콜백 함수 만들기

function func1(x,y){
 consol.log(x+y) //3
}

func1(1,2)

///////////////////////////////////////

function func1(x,y){
return x+y
}

consol.log(func1(1,2)) //3

//////////////////////////////////////

const func = function (x,y) {
return x+y
}

//////////////////////////////////////

const func = (x,y) => {
return x+y
}

//////////////////////////////////////

const func = (x,y) => x+y

 

set time out(콜백함수, 시간(ms), 콜백함수 인자1, 인자2, ......)

setTimeout(
  (name,name1)=>{
     console.log(name)
     console.log(name1)
     },1000,'a','b')
//a
//b

 

*사용해보기

<script>

function buyCoffee(coffeeName,price,quantity, callback, callback1) {
    console.log(`${coffeeName}를 ${quantity}개 구입하려합니다.`);
    console.log(`${coffeeName} 한 개 ${price}원 입니다.`);

    setTimeout(()=>{
        //return price*quantity
        callback(price*quantity)
        callback1(quantity)
    },1000)
}


function pay (money) {
    console.log(money,"원을 지불하였습니다.");
}

function quantity (num) {
    console.log(`주문하신 수량은 ${num}개 입니다`);
}

//함수호출
buyCoffee('카라멜 마끼아또',5000,3,pay,quantity)

</script>

//카라멜 마끼아또를 3개 구입하려합니다.
//카라멜 마끼아또 한 개 5000원 입니다.
// 15000 '원을 지불하였습니다.'
//주문하신 수량은 3개 입니다

 

*콜백지옥 실습

setTimeout(
  (name)=>{
    let ramenList = name
    console.log(ramenList)
    setTimeout(
      (name)=>{
        ramenList +=','+ name
        console.log(ramenList);
        setTimeout(
          (name)=>{
            ramenList += ',' + name
            console.log(ramenList);
            setTimeout(
              (name)=>{
                ramenList += ','+name
                console.log(ramenList);
              },
              500,'삼양라면'
            )
          },
          500,'불닭볶음면'
        )
      },
      500,'신라면'
    )
  },
  500, '꼬꼬면'
)
728x90
반응형