1 분 소요

1230 TIL

Created By: 성희 배 Last Edited: Dec 30, 2019 10:50 PM

ES6 : Arrow Function

  • function 사용 안함
  • (인자) ⇒
  • short-hand syntax
  • arrow function은 자신의 this, arguments, super, new.target을 바인딩 하지 않는다.
      const event = {
          name : 'Birthday Party',
          guestList :['Andrew', 'Sonia', 'Mike'],
          printGuestList(){ 
              console.log('Guest list for ' + this.name)
              this.guestList.forEach((guest)=>{
                  console.log(guest + ' is attending ' + this.name)
              })
          }
      }
    
  • 메소드 함수가 아닌 곳에 가장 적합
  • concise 바디는 return 불필요 / block 바디는 return 필요
      const square = x => x*x //concise body
    
  • 객체 리터럴 반환 : 괄호로 감싸기
      const func = ()=> ({foo:1})
    

Async/Await

  • JS는 비동기적 언어 → 동기화가 필요 (setTimeout, callback, promise)

setTimeout

  • 특정 시간 동안 delay
  • setTimeout은 첫 번째 task 내에 별도의 task 생성 후 첫 번째 task가 종료되길 기다림.
      let first = 10
      let second = 20
      let result = 0
        
      function add(x, y) {
        return x + y
      }
      function getResult(callback) {
        setTimeout(function() {
          result = add(first, second)
          console.log(result) // 30
          callback()
        }, 1000)
      }
        
      getResult(function() {
        first = 20
      })
    

    → 따라서 결과는 30이 아닌 40이 나온다.

callback

  • callback?
    • 호출하는 함수 (calling function)가 호출되는 함수(called 함수)로 전달하는 함수를 말한다.
  • callback 함수의 제어권은 호출되는 함수에게 있음
  • 비동기 코드를 동기식으로 처리하기 위해 사용. (네트워크 요청)
  • 남발할 시 코드의 복잡도, 에러 발생 확률 올라감

promise

  • 어떤 작업이 성공 (resolve) 됐을 때, promise 객체의 then() 함수에 넘겨진 파라미터(함수)를 단 한번만 호출하겠다는 약속
  • 파라미터가 단 한 번만 실행되기 때문에 안정성 높음
  • 실패(reject) 했을 경우에도 catch() 함수를 통해 실패 이후의 작업 처리 가능

async & await

  • function 키워드 앞에 async 부착, 비동기로 처리되는 부분 앞에 await 부착
  • await 뒷 부분이 반드시 promise 반환
  • async도 promise 반환
  • async,await => 제너레이터,이터레이터 + 프로미스

카테고리:

업데이트: