동기와 비동기

OneTwoThree·2022년 11월 2일

nodejs

목록 보기
11/33

유튜브 강의

node js는 비동기적 처리를 하기 좋음
병렬적으로 동시에 여러가지 일을 하는 것이 비동기적인 것임

var fs = require('fs');

//동기적 방식 
console.log('A');
var result = fs.readFileSync('syntax/sample.txt','utf8');
console.log(result);
console.log('C');

readFileSync는 동기적 방식으로 파일을 읽어옴
sample.txt에는 B라고 적었는데 순서대로 A 출력 sample.txt 가져오고 result 출력 C 출력하게 됨

var fs = require('fs');

//동기적 방식 
// console.log('A');
// var result = fs.readFileSync('syntax/sample.txt','utf8');
// console.log(result);
// console.log('C');

//비동기적 방식
console.log('A');
fs.readFile('syntax/sample.txt','utf8',function(err,result){
    console.log(result);
});
console.log('C');

반면에 readFile은 비동기적 방식으로 세번째 인자로 콜백함수를 전달받음
파일을 불러와서 콜백함수의 두번째 인자인 result에 불러온 내용을 받아서 콜백함수의 내용을 실행함
그리고 진행하면서 아랫 라인도 실행함
따라서 불러오는 도중에 C가 출력되고 B가 출력됨

콜백함수를 잘 사용해야 node.js를 최대로 활용할 수 있다.

콜백

//익명함수를 변수 a에 저장 , 함수는 값이다 
var a = function(){
    console.log('A');
}

//func1의 인자로 함수 전달 , 콜백함수 
function func1(callback){
    callback();
}

//인자로 a 전달 , a가 콜백함수로 호출 
func1(a);

인자로 함수를 전달해서 호출할 수 있다. 이게 콜백함수

0개의 댓글