>  기사  >  웹 프론트엔드  >  nodejs에서 콜백은 무엇을 의미합니까?

nodejs에서 콜백은 무엇을 의미합니까?

WBOY
WBOY원래의
2022-03-04 15:20:151392검색

nodejs에서 콜백은 함수를 다른 함수에 매개변수로 전달하는 것으로, 일반적으로 첫 번째 함수가 완료된 후에 호출되며, Node의 모든 API는 콜백 방식을 지원합니다.

nodejs에서 콜백은 무엇을 의미합니까?

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

nodejs에서 콜백은 무엇을 의미하나요?

콜백은 비동기식 동등 함수입니다. 콜백 함수는 특정 작업이 완료되면 호출됩니다. 노드는 콜백을 광범위하게 사용합니다. 모든 Node API는 콜백을 지원합니다.

예를 들어, 파일을 읽는 함수는 파일 읽기를 시작하고 다음 명령이 실행되도록 허용하여 즉시 실행 환경에 제어권을 반환할 수 있습니다. 파일 I/O가 완료되면 콜백 함수를 호출하고 콜백 함수에 파일 내용을 매개변수로 전달합니다. 따라서 파일 I/O를 차단하거나 대기하는 일이 없습니다. 이는 어떤 함수도 결과를 반환할 때까지 기다리지 않고 많은 수의 요청을 처리할 수 있기 때문에 Node.js의 확장성을 높여줍니다.

차단 코드 예

다음 텍스트가 포함된 input.txt라는 파일을 생성합니다.

Yiibai Point is giving self learning content
to teach the world in simple and easy way!!!!!

다음 코드가 포함된 main.js라는 js 파일이 생성됩니다.

var fs = require("fs");
var data = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("Program Ended");

이제 main.js를 실행하여 결과를 확인합니다.

$ node main.js

검증 출력

Yiibai Point is giving self learning content
to teach the world in simple and easy way!!!!!
Program Ended

비차단 코드 예시

다음 텍스트를 사용하여 input.txt라는 파일을 생성합니다.

Yiibai Point is giving self learning content
to teach the world in simple and easy way!!!!!

다음 코드로 main.js 파일을 업데이트합니다.

var fs = require("fs");
fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
});
console.log("Program Ended");

이제 실행해 본 결과를 확인하세요. by main.js:

$ node test.js

확인 출력

Program Ended
Yiibai Point is giving self learning content
to teach the world in simple and easy way!!!!!

이 두 가지 예는 차단 및 비차단 호출의 개념을 보여줍니다. 첫 번째 예에서는 프로그램이 파일을 읽을 때까지 차단한 다음 프로그램이 끝나는 곳까지만 진행한다는 것을 보여줍니다. 두 번째 예에서 프로그램은 파일을 읽을 때까지 기다리지 않고 단순히 "Program Ended"를 인쇄하며 그 동안 프로그램은 차단하지 않고 계속해서 파일을 읽습니다.

따라서 블로킹 프로그램은 순차적으로 실행되므로 프로그래밍 관점에서 로직을 구현하기가 더 쉽지만, 비차단 프로그램은 순차적으로 실행되지 않습니다. 이 경우 프로그램은 데이터를 사용해야 합니다. 처리를 위해서는 공식을 사용하여 유지되어야 합니다. 동일한 블록이 순차적으로 실행됩니다.

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

위 내용은 nodejs에서 콜백은 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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