JavaScript의 논블로킹 프로세스의 예

예제를 통해 Callback 및 Promise를 사용하여 비차단 프로세스를 생성하는 방법 알아보기

Unsplash의 James Harrison 사진

JavaScript는 동기식 프로그래밍 언어입니다. 즉, 위에서 아래로 순서대로 코드 블록을 실행합니다. 그러나 JavaScript Event 루프 덕분에 콜백 함수와 약속 함수를 사용하여 논블로킹 프로세스를 수행할 수 있습니다.

여기 몇 가지 예가 있어요.

콜백 함수

// Example Parameter Function
const parameter = {
  firstName: 'John',
  lastName: 'Doe'
}
// Example callback function (will run after delay function finish)
const callBackFunction = (result) => {
  console.log(result)
}
// Example slow process or API call Function
const delayFunction = (callBack, parameter) => {
  
  // For replicate delay we use setTimeout as example
  setTimeout(() => {
    // Example slow process or api call return
    const result = `${parameter.firstName} ${parameter.lastName}`
    
    // Triggering the callback function after getting the result
    callBack(result)
  },1000)
}
console.log('start')
// Run delay function
delayFunction(callBackFunction, parameter)
console.log('finish')
// Output:
// Start
// Finish
// John Doe

// Example Parameter Function
const parameter = {
  firstName: 'John',
  lastName: 'Doe'
}
// Example callback function (will run after delay function finish)
const callBackFunction = (result) => {
  console.log(result)
}
// Example slow process or API call Function
const delayFunction = (parameter) => {
  return new Promise((resolve) => {
    
    // For replicate delay we use setTimeout as example
    setTimeout(() => {
    
    // Example slow process or api call return
    const result = `${parameter.firstName} ${parameter.lastName}`
    
    // Triggering the resolve promise after getting the result
    resolve(result)
  },1000)
  })
}
console.log('start')
// Run delay function
delayFunction(parameter).then(callBackFunction)
console.log('finish')
// Output:
// Start
// Finish
// John Doe

남은 모든 프로세스가 완료된 후 JavaScript는 이벤트 루프를 확인하여 콜백이 이미 완료되었는지 여부를 확인합니다. 완료되면 콜백 함수를 실행합니다.

결론

이상입니다. 이 기사가 도움이 되었다면 댓글로 알려주세요. Medium 및 LinkedIn 에서 저를 팔로우할 수도 있습니다.

Suggested posts

도메인 이름에 대한 정보 찾기

Brian P. Hogan의 Small, Sharp 소프트웨어 도구에서 발췌

도메인 이름에 대한 정보 찾기

facebook.com에 요청하면 컴퓨터가 도메인 이름을 조회하여 해당 도메인 이름을 IP 주소로 변환하므로 컴퓨터가 해당 연결을 만들 수 있습니다.

UI 디자인의 D-word와 L-word. 언어가 중요합니다. 인종 차별하지 마십시오.

UI 디자인의 D-word와 L-word. 언어가 중요합니다. 인종 차별하지 마십시오.

우리의 언어는 우리의 생각, 태도 및 행동을 형성할 수 있는 강력한 도구입니다. 무해해 보이는 용어도 해로운 편견과 고정관념을 영속화할 수 있습니다.

Related posts

기다림의 계절에 할 수 있는 것(기술 분야에서 첫 직장을 얻기 위해 기다림)

기다림의 계절에 할 수 있는 것(기술 분야에서 첫 직장을 얻기 위해 기다림)

새로운 직업으로 전환하는 것은 혼자서 하려고 한다면 매우 어려울 수 있습니다. 귀하와 동일한 학습 수준에 있고 유사한 목표, 끈기 및 추진력을 공유하는 책임 파트너를 찾는 것이 중요합니다.

"마리아나 해구 공개: 심연의 무서운 숨겨진 진실 공개"

"마리아나 해구 공개: 심연의 무서운 숨겨진 진실 공개"

소개:용감한 독자 여러분, 지구의 가장 어두운 곳으로 우리를 데려다 줄 여행에 오신 것을 환영합니다. 이 블로그에서 우리는 Mariana Trench의 수수께끼 같은 세계를 탐구하여 숨겨진 비밀을 밝히고 그 표면 아래에 있는 뼛속까지 오싹해지는 진실을 밝혀냅니다.

빨간 머리 소녀의 솔로 퍼포먼스

Hayden의 임무를 맡은 Katie는 자위하는 자신을 촬영합니다.

빨간 머리 소녀의 솔로 퍼포먼스

Hayden이 함께 저녁을 보낸 후 Katie를 대학 기숙사로 데려다 준 것은 자정 이후였습니다. 그녀는 아침에 일찍 수업이 있었고 전날 밤 그와 함께 지낸 후 다시 옷을 갈아입지 않았습니다.

예술은 비정치적인가?

예술은 비정치적인가?

어제 우리는 스웨덴 가수 Loreen이 트로피를 집으로 가져가서 ABBA가 대회에서 우승한 지 50년 만에 스웨덴의 왕관을 다시 가져가면서 두 번 우승한 최초의 여성이 되는 반짝반짝하고 혼란스러운 그랜드 피날레로 올해 유로비전 송 콘테스트의 문을 닫았습니다. "워털루"와 함께. 그들은 계속해서 팝 음악의 정경에서 가장 큰 행위 중 하나가 되었습니다.