では、 を使用することと単に投げることMeteor.publishの違いは何ですか?this.errorMeteor.Error
1519 次
2 に答える
6
this.errorpublish メソッド内でのみ使用できます。ドキュメントごと:
このクライアントのサブスクリプションを停止し、クライアント上で に
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 に答える