const delay = (wait, callback) => {
setTimeout(callback, wait);
}
setTimeout은 비동기 함수이다.
만료된 후 함수나 지정한 코드를 실행하는 '타이머'를 설정한다.
매개변수 wait -> 시간(타이머)
callback -> 실행할 함수
callback 이라고 네이밍을 한 이유는, callback 자리에 들어올 함수가 콜백 함수이기 때문이다.
콜백 함수는 함수의 인자로 전달되는 함수이다. 다른 함수가 실행된 후, 호출(callback)되기 때문에 콜백 함수라 한다.
화살표 함수
인자 2개 wait, callback
setTimeout 이라는 함수를 실행시키고 인자를 (callback, wait) 바꿔서 넣어준다.
delay 함수 설명
delay 함수는 콜백 함수를 실행하기 전에, 두 가지 인수 사용
대기할 시간(밀리초)인 wait와, delay 후 실행할 함수인 callback
delay가 호출되면 setTimeout을 사용하여,
지정된 wait 시간이 경과된 후 콜백 함수가 실행되도록 예약한다.
const sleep = (wait) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve('hello');
}, wait);
});
}
라인별 코드 설명
sleep 함수 설명
반환된 promise를 해결하기 전에, 대기할 시간(밀리초)인 wait 인수 하나만 사용
sleep이 호출되면 지정된 wait 시간이 경과 후 setTimeout 함수를 사용하여,
지정된 시간 동안 기다린 후, promise 객체를 반환한다.
공통점
delay, sleep 함수 모두 코드 실행을 지연시키는데 사용된다.
setTimeout 함수가 사용된다.
차이점
delay 함수는 아무것도 반환하지 않는다.
콜백 함수가 나중에 실행되도록 예약하기만 하면 된다.
const fs = require("fs"); // 파일 시스템 모듈을 불러온다.
const getDataFromFile = function (filePath, callback) {
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
callback(err, null);
}
else {
callback(null, data);
}
console.log(data);
})
};
// getDataFromFile('README.md', (err, data) => console.log(data));
module.exports = { // 모듈 구문으로 getDataFromFile 함수를 export 한다.
getDataFromFile
};
const fs = require('fs'); // 파일 시스템 모듈을 불러온다
fs.readFile(file[, options], callback)
-> 비동기적으로 파일 내용 전체를 읽는다.
-> 전달인자 3개를 받는다.
const fs = require("fs");
const getDataFromFilePromise = filePath => {
return new Promise((resolve, reject) => {
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
// 1. err에 무언가 있으면 에러
reject(err)
} else {
// 2. err에 무언가 없으면 ok
resolve(data)
}
})
})
};
module.exports = {
getDataFromFilePromise
};
gDFP 함수는 filePath를 인자로 갖는 화살표 함수이다.
input: fetch * 2
output: { news{}, weather{}}