提问人:Vishal Gupta 提问时间:10/17/2023 更新时间:10/17/2023 访问量:13
Nodejs 流未被错误事件侦听器捕获。我正在使用 npm Imap 模块,并且流错误没有在错误侦听器中捕获
Nodejs stream is not getting caught in error event listener. I am using npm Imap module and the stream error is not getting caught in error listener
问:
imap.once('ready', function() {
openInbox(function(err, box) {
if (err) throw err;
var f = imap.seq.fetch('1:3', {
bodies: 'HEADER.FIELDS (FROM TO SUBJECT DATE)',
struct: true
});
f.on('message', function(msg, seqno) {
console.log('Message #%d', seqno);
var prefix = '(#' + seqno + ') ';
msg.on('body', function(stream, info) {
var buffer = '';
stream.on('data', function(chunk) {
throw new Error('Custom Error');
});
stream.once('end', function() {
console.log(prefix + 'Parsed header: %s', inspect(Imap.parseHeader(buffer)));
});
});
msg.once('attributes', function(attrs) {
console.log(prefix + 'Attributes: %s', inspect(attrs, false, 8));
});
msg.once('end', function() {
console.log(prefix + 'Finished');
});
});
f.once('error', function(err) {
console.log('Fetch error: ' + err);
});
f.once('end', function() {
console.log('Done fetching all messages!');
imap.end();
});
});
});
该代码是 npm imap 的直接示例代码 https://www.npmjs.com/package/imap 所以,我只是从流数据事件中抛出一个自定义错误。
现在我想抓住我尝试过的错误
stream.on('error', function (err) {
logger.info('Error');
});
但这并没有抓住它。另外,尝试尝试捕获块。 如何捕获和处理此错误
答: 暂无答案
评论