1

我正在使用 xml2js,我需要很健壮,因为不能保证 xml 的源格式正确。因此,我需要确保能够处理所有错误。如果代码看起来像这样:

let parseString = require('xml2js').parseString;
let xml = getTheXml(...);
parseString(xml, (err, result) => {
    if (err) { handleError(err) }
    else { handleResult(result); }
});

我是否保证parseString永远不会抛出错误,并且所有错误都作为err对象传递给回调?

或者为了更安全,我是否需要执行以下操作:

let parseString = require('xml2js').parseString;
let xml = getTheXml(...);
try {
  parseString(xml, (err, result) => {
    if (err) { handleError(err) }
    else { handleResult(result); }
  });
} catch (err) { handleError(err); }

此外,我是否保证parseString同步执行?

4

1 回答 1

1

实现错误优先回调设计时的预期行为是它不是同步的,并且任何错误都作为第一个参数传递。

“保证”.. 我不是该模块的作者或贡献者,所以我对此无话可说。如果你需要确定,写一个测试..

于 2017-05-08T16:12:11.593 回答