반응형
동기(Synchronous) : 일의 순서대로 처리
비동기(asynchronous) : 일을 병렬로 동시에 처리
Ex) readFile()
- 비동기적 fs.readFile(path[,options],callback)
- 동기적 fs.readFileSync(path[,options])
비동기는 callback이 있음
동기는 이름에 Sync가 붙으며 callback이 없음
동기 readFileSync
var fs = require('fs');
console.log('A');
var result = fs.readFileSync('syntax/sample.txt','utf8');
// fs모듈의 readFileSync함수를 사용해
// 첫번째 인자로 읽을 파일(syntax/sample.txt)을 가져옴
// 파일의 내용은 result에 담김(sample.txt 내용은 B)
console.log(result);
console.log('C');
[결과]
A
B
C
비동기 readFile
var fs = require('fs');
console.log('A');
fs.readFile('syntax/sample.txt','utf8', function(err, result){
// fs모듈의 readFile함수를 사용해
// 첫번째 인자로 읽을 파일(syntax/sample.txt)을 가져옴
// 콜백함수의 두번째 인자로 파일의 내용(result)을 가져옴
console.log(result); // sample.txt 내용은 B
});
console.log('C');
[결과]
A
C
B
-> readFile이 실행되고 처리하는 동안 console.log('C')가 먼저 실행됐기 때문에
Callback
- 작업이 끝난 후에 처리할 내용
Ex)
readFile('syntax/sample.txt', 'utf8', function(err, result){
console.log(result);
});
- 1. readFile이란 기능을 이용해서 'systax/sample.txt'를 읽어라
- 2. 이 작업이 끝나면 function(err, result){}를 실행시켜라
var a = function(){ // a라는 이름의 함수
console.log('A');
}
function slowfunc(callback){ // slowfunc가 실행이 끝난 후에
callback(); // 인자로 받은 callback을 실행해라
}
slowfunc(a); // callback은 a가 되고, a()가 실행
반응형
'Dev > Nodejs' 카테고리의 다른 글
[Nodejs] Form - GET/POST (0) | 2020.08.04 |
---|---|
[Nodejs] Package Manager - NPM, PM2 (0) | 2020.08.03 |
[Nodejs] 파일 디렉토리 읽기 - readdir() (0) | 2020.08.03 |
[Nodejs] 페이지 구현 - Query string (0) | 2020.08.03 |
[Nodejs] Not found - Pathname (0) | 2020.08.03 |