코드스테이츠 블록체인 교육 - 14일(7/26)

Imomo·2022년 8월 3일
0

블록체인교육

목록 보기
14/26

📖 고차함수와 Callback

  • 고차함수는 다른 함수를 인자로 전달받을 수 있다.
  • 고차함수의 인자로 전달된는 함수를 콜백 함수라고 합니다.
  • 고차함수는 다른 함수를 리턴할 수 있다.

📖 blocking , non-blocking

  • blocking: 하나의 작업이 끝날 때까지, 이어지는 작업을 "막는것" 입니다.
  • non-blocking: 요청한 작업을 즉시 마칠 수 없다면 요청한 작업을 별도의 프로세스에게 맡기고 다른 작업을 먼저 실행한다.

✅ Promise chaining

순차적으로 처리해야할 콜백이 여러개 일경우 처리방법

  1. 기존 콜백 방식으로 할경우~!
function gotoCode() {
  return new Promise((resolve, reject) => {
  	setTimeout(() => { resolve('1. go to code') }, 100)
  })
}
function sitAndCode() {
	return new Promise((resolve, reject) => {
    	setTimeout(() => { resolve('2. sit and code') }, 100)
    })
}

gotoCodestates()
.then(data => {
	console.log(data)
  	sitAndCode()
  	.then(data => {
      console.log(data)
      ...()
    }
}
  1. Promise chaining 사용해서 할 경우
gotoCodestates()
.then(data => {
  console.log(data)
  return sitAndCode()
})
.then(data => {
  console.log(data)
  return ...()
})

Promise All

  • 여러 개의 비동기 처리를 병렬로 처리할 때
console.time("소요시간");
	await display("jacob", 3000);
	await display("제이콥", 2000);
	await display("콥짱", 1000);
console.timeEnd("소유시간");  
// 소요시간 : 약 6000ms

2 promise.all을 사용한경우

console.time("소요시간");
await.Promise.all([
	display("jacob", 3000);
	display("제이콥", 2000);
	display("콥짱", 1000);
]);
console.timeEnd("소유시간");
// 소유시간: 약 3000ms
  • promise.all을 사용할 경우 훨씬 단축된 시간을 확인할 수 있다.

  • 1번을 경우 함수 하나하나 다 기다렸다가 실행값을 return 한다.

  • 2번 Promise.all의 경우 병렬로 비동기 함수를 실행시켰기 때문에 빠르게 진행된다.

  • Promise.all 순서대로 실행하지만 비동기적으로 함수 실행되므로 반환 순서는 달라질수 있다.

    출처: https://code-masterjung.tistory.com/91

  • 에러가 발생할경우 다른 프로미스의 결과는 무시된다. 주의 ~!

0개의 댓글

관련 채용 정보