Обратный вызов fs.readFile не возвращает errorFn или successFn.
Пример из Node.js fs docs:
fs.readFile('/etc/passwd', (err, data) => {
if (err) throw err;
console.log(data);
});
Вместо этого вы можете передать объект err в errorFn и то же самое.для успеха с данными.
function myReadFile(fileName, successFn, errorFn) {
fs.readFile(fileName,'utf8', function read(err, data) {
if (err) {
errorFn(err);
} else {
successFn(data);
}
});
}
В качестве альтернативы вы можете превратить его в Обещание следующим образом:
function myReadFile(fileName) {
return new Promise((resolve, reject) => {
fs.readFile(fileName,'utf8', function read(err, data) {
if (err) {
resolve(err);
} else {
reject(data);
}
});
});
}
//usage:
myReadFile('/some/file')
.then(data => {
//data here
})
.catch(err => {
//error here
});