로컬 foo.txt에있는 내용을 읽는 기능을 구현 중입니다.예기치 않게 변수가 지워졌습니다.
var fs = require("fs");
var path = require("path");
var realpath = path.resolve("./foo.txt");
fs.open(realpath, "r", function(err, fd){
if (err) { throw err; };
var buf = new Buffer(1024),
bufOffset = 0,
bufLength = buf.length,
result = "";
var recursive = function(position) {
buf = new Buffer(1024)
fs.read(fd,
buf,
bufOffset,
bufLength,
position,
function(err, bytesRead, buffer) {
if (err) { throw new Error("Opps!"); };
if (bytesRead > 0) { // Block**
result = result.concat(buffer.slice(0, bytesRead).toString());
recursive(bytesRead + position);
}
});
};
recursive(0);
console.log(result);
});
재귀 적 방법을 사용했습니다. 이 프로그램을 실행 한 후에 나는 아무것도 얻지 못했습니다. 하지만 위의 Block **에서 console.log (결과)를 사용하면 작동합니다. 프로그램이 열린 블록으로 돌아간 후에 왜 결과가 정리 되나요? 감사.
'fs.read'는 "Sync"로 끝나지 않는 대부분의 NodeJS 메소드와 마찬가지로 비동기입니다. –