티스토리 뷰
반응형
우선 코드와 같은 경로에 hello.txt 파일을 아무 내용이나 넣어서 생성.
const fs = require("fs");
function readFile(filename, encoding) {
fs.readFile(filename, encoding, (err, data) => {
});
}
위와 같은 코드가 있을때 다음 코드와 같이 비동기 버전으로 사용하려고 하는 경우
readFile("./hello.txt", "utf-8")
.then()
readFile 함수를 Promise로 만들어 주어야 한다.
두가지 방법이 있다.
const fs = require("fs");
function readFile(filename, encoding) {
return new Promise((resolve, reject) => {
fs.readFile(filename, encoding, (err, data) => {
if (err) return reject(err);
resolve(data);
});
});
}
readFile("./hello.txt", "utf-8").then(
data => console.log("Read", data),
err => console.error("File", err)
);
위 코드처럼 Promise로 직접 만들 수 있고.
const fs = require("fs");
const util = require("util");
const readFile = util.promisify(fs.readFile);
readFile("./hello.txt", "utf-8").then(
data => console.log("Read", data),
err => console.error("File", err)
);
위 코드처럼 util 라이브러리를 사용하여 만들 수 도 있다.
'Javascript > 비동기 프로그래밍' 카테고리의 다른 글
[Javascript] Promise #3 promise.all, promise.race (0) | 2020.04.09 |
---|---|
[Javascript] Promise #2 (0) | 2020.04.08 |
[Javascript] Promise #1 (0) | 2020.04.07 |
[Javascript] callback 활용방법 (0) | 2020.04.07 |