【发布时间】:2021-04-21 21:36:14
【问题描述】:
我编写了一个函数,它返回一个异步逐行读取文件的承诺,但问题是如果文件不存在,则会引发错误并且应用程序崩溃。我已将代码包围在 try catch 块中,但代码执行从未进入 catch 块而是终止。
其次,我可以拒绝一个承诺,然后从承诺中返回一个 json 对象吗?
点赞reject({success: false});
const fs = require('fs');
const readline = require('readline');
class fileParser{
readPolicyFile = function(filePath, fileName) {
return new Promise((resolve, reject) => {
try {
let response = {};
let readInterface = readline.createInterface({
input: fs.createReadStream(`${filePath}/${fileName}`),
terminal: false
});
readInterface
.on('line', line => {
// Do processing here to create the response
})
.on('close', () => {
resolve(response);
});
} catch(err){
console.log("Inside catach block");
reject(err);
}
})
}
}
module.exports = new fileParser();
【问题讨论】:
-
您需要处理该流上的
error事件。不要将代码包装在try/catch -
感谢@Bergi 和@evolutionxbox,我实际上是在readInterface 中处理它,但它需要在
fs读取流中处理。这对我有用。
标签: javascript node.js es6-promise