동기적 방식 (synchronous)
: 순차적 실행
(sample.txt 에는 B라고 적혀있음)
var fs = require('fs');
console.log('A');
var result = fs.readFileSync('syntax/sample.txt', 'utf8');
console.log(result);
console.log('C');
// A B C
비동기적 방식 (asynchronous)
: 병렬적으로 여러가지 일을 동시 실행
(작업이 끝나는걸 기다리지 않고 다음 작업을 수행)
: Node.js 는 비동기적 방식을 선호함
var fs = require('fs');
console.log('A');
fs.readFile('syntax/sample.txt', 'utf8', function(err, result){
console.log(result);
});
console.log('C');
// A C B
콜백 (callback)
// 익명 함수 -- 이름이 없는 함수
// 자바스크립트에서 함수는 값이다.
var a = function () {
console.log('A');
}
// a();
function slowfunc(callback) {
// 굉장히 오래 걸리는 기능
// ~~
// 이 기능(함수)이 끝나면 실행할 함수
callback();
}
slowfunc(a);