동기

비동기

커리함수

Callback

let data = (path, callback) => {
	fs.readFile(path, 'utf8', (err, data) => {
		if(err) {
			callback(err, null);
		} else {
				// 에러가 없으면 (null, data) -> **일반적으로 앞에 에러를 넣어주고 뒤에 데이터 넣어준다.**
				callback(null, data); 
			}
	})
}

data('a', (err, data) => console.log(data))

Promise

let data = path => {
	return new Promise((resolve, reject) => {
		fs.readFile(path, 'utf8', (err, data) => {
			if(err) {
				// 에러가 있으면 reject
				reject(err);
			} else {
					// 에러가 없으면 resolve
					resolve(data); 
				}
		})
	})
}

data('a').then((data) => console.log(data))

Promise.all