0
我正在使用xml2js,我需要健壯,因爲不能保證xml的源代碼格式正確。所以,我需要確保能夠處理所有錯誤。如果代碼看起來是這樣的:保證xml2js是同步的並且會拋出錯誤嗎?
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
同步執行?
我寫了一個測試,但測試只確保它所需的路徑是同步的。它不會測試通過該方法的其他路徑是否同步。它也不測試包的未來版本將保持同步。我希望對包裝的API合同有一個澄清,這是包裝開發人員可以回答的一個問題。 –
您應該在'package.json'中指定版本以保護您的應用程序免受3:d方庫中的重大更改。 – superhero
公平點。我也是這樣做的,但知道API背後的合同會讓我更有信心,當我想要升級時。我檢查了代碼,我確信解析方法不會拋出。我想我需要假定庫將使用標準節點回調。 –