【发布时间】:2016-08-09 13:49:28
【问题描述】:
我使用 nodejs 的 xml-stream 库来解析一个大的 xml 文件。这很好用。 但是我注意到,如果在 xml-stream 事件的回调中出现类似 RefereceError 的问题,nodejs 只会在没有通知我的情况下退出或抛出错误。
一个简短的例子是以下代码:
var fs = require('fs');
var XmlStream = require('xml-stream');
var stream = fs.createReadStream('E:/jdown2/dblp/dblp.xml');
var xml = new XmlStream(stream);
xml.on('endElement: article', function (data) {
console.log("article"); // works well
var demo = functionThatNotExists(data);
console.log("nodejs exit before this console log");
});
所以我的问题是,我怎样才能到达它,nodejs 告诉我有一个错误以及错误发生在哪里?
或者 xml-stream 不提供那个?
在一个普通的回调函数中,比如:
errorInCallback("test", function (err,data) {
console.log(err, data)
});
function errorInCallback(data, cb) {
var demo = functionThatNotExists(data);
var err = null;
return cb(err, demo)
}
一切都像预期的那样工作,nodejs 抛出一个 ReferenceError
有人能解释一下原因吗?也许可以解决这个问题?
提前致谢!
【问题讨论】:
标签: javascript node.js error-handling