>웹 프론트엔드 >프런트엔드 Q&A >nodejs 콜백 지옥이 뭐죠?

nodejs 콜백 지옥이 뭐죠?

WBOY
WBOY원래의
2022-03-04 16:07:051994검색

nodejs에서는 기본적으로 "I/O" 작업의 결과가 콜백 함수에서 처리되어야 합니다. 여러 이벤트를 처리할 때 콜백 함수는 레이어별로 중첩됩니다. 즉, 비동기식입니다. 요청은 비동기식 요청 내에 중첩되며 하나의 비동기식 요청은 서로 중첩하기 위해 콜백을 사용하여 다른 요청의 실행 결과에 따라 달라집니다.

nodejs 콜백 지옥이 뭐죠?

이 문서의 운영 환경: Windows 10 시스템, nodejs 버전 12.19.0, Dell G3 컴퓨터.

nodejs의 콜백 지옥이란?

nodejs의 I/O 작업 결과는 기본적으로 콜백 함수에서 처리되어야 합니다. 여러 이벤트가 처리되면 콜백 함수가 레이어별로 중첩됩니다. 이것이 콜백 지옥입니다. .

비동기 요청은 비동기 요청 내에 중첩되며 하나의 비동기 요청은 서로 중첩하기 위해 콜백을 사용하여 다른 요청의 실행 결과에 따라 달라집니다.

Nodejs의 가장 큰 특징은 이벤트 중심의 비차단 I/O입니다. Nodejs를 만드는 모델입니다. 강력한 동시 처리 기능을 갖추고 있으며 네트워크 애플리케이션을 작성하는 데 매우 적합합니다. Nodejs의 대부분의 I/O 작업은 거의 비동기식입니다. 즉, I/O 작업의 결과는 기본적으로 파일 내용을 읽는 다음 함수와 같은 콜백 함수에서 처리되어야 합니다.

fs.readFile('/etc/passwd', function (err, data) {
  if (err) throw err;
  console.log(data);
});

그럼 어떻게 해야 할까요? 두 개의 파일을 읽고 두 파일의 내용을 병합하여 처리한다면? js에 잠시 노출된 대부분의 사람들은 다음과 같이 할 것입니다.

fs.readFile('/etc/passwd', function (err, data) {
  if (err) throw err;
  fs.readFile('/etc/passwd2', function (err, data2) {
    if (err) throw err;
    // 在这里处理data和data2的数据
  });
});

그러면 비슷한 장면을 여러 개 다룬다면 그렇지 않을까요? 콜백 함수는 레이어별로 중첩되어 있습니다. 이것은 모두가 콜백 피라미드 또는 콜백 지옥이라고 부르는 것입니다.

추천 학습: "nodejs 비디오 튜토리얼"

위 내용은 nodejs 콜백 지옥이 뭐죠?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.