では、 を使用することと単に投げることMeteor.publish
の違いは何ですか?this.error
Meteor.Error
1519 次
2 に答える
6
this.error
publish メソッド内でのみ使用できます。ドキュメントごと:
このクライアントのサブスクリプションを停止し、クライアント上で に
onError
渡されたコールバックへの呼び出しをトリガーしますMeteor.subscribe
(存在する場合)。エラーが でない場合はMeteor.Error
、 にマップされMeteor.Error(500, "Internal server error")
ます。
をスローしてMeteor.Error
もクライアントのサブスクリプションは停止せず、実行を終了して例外を発生させるだけです。そのため、予期しないことが起こったときに Meteor が確実にクリーンアップし、クライアントでエラーを処理できるようにしたい場合はthis.error
、publish メソッド内で独自のものをスローするのではなく、使用することをお勧めします。
于 2013-03-19T22:18:20.557 に答える
3
それらは同じようです。ソースコード内:
try {
var res = self._handler.apply(self, EJSON.clone(self._params));
} catch (e) {
self.error(e);
return;
}
したがって、例外がスローされた場合error
は、とにかく呼び出されます。error
サブスクリプションも停止します。
于 2013-03-19T22:34:16.643 に答える