0
私はxml2jsを使用しています。xmlのソースが整形式であるという保証がないため、堅牢である必要があります。ですから、すべてのエラーを確実に処理できるようにする必要があります。私はparseString
は、すべてのエラーは、コールバックへerr
オブジェクトとして渡されていることを、エラーをスローしないことを保証xml2jsは同期していることが保証されていますか?エラーが発生しますか?
let parseString = require('xml2js').parseString;
let xml = getTheXml(...);
parseString(xml, (err, result) => {
if (err) { handleError(err) }
else { handleResult(result); }
});
アム:コードは次のようになりますか?
それとも安全であると、私は次の操作を行う必要があります:
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契約について明確にしたいと考えています。これは、パッケージ開発者のうちの1つだけが答えるものです。 –
あなたの 'package.json'にversionを指定して、3:dパーティライブラリの変更を壊さないようにアプリケーションを保護する必要があります。 – superhero
公正なポイント。私もこれをやっていますが、APIの背後にある契約を知っていると、私がアップグレードしたいときに私はより自信を持ってくれます。コードを調べたところ、解析メソッドがスローされないと確信しています。私は、ライブラリが標準のノードコールバックを使用すると仮定する必要があると思います。 –