0
私はEventEmitter
を持っています。アプリケーションの状態が変更されたことをコンポーネントに通知することをユーザーに通知します。Anger2 EventEmitterが.errorを呼び出した後に完了しない
このイベントは、認証しようとしているユーザーが成功したかどうかを通知します。
今private emitAuthStatus(success: boolean) {
if (success) {
this.locationWatcher.emit({
authenticated: this.authenticated,
token: this._authData.token,
expires: this.expires
});
} else {
this.locationWatcher.error();
}
this.locationWatcher.complete();
}
私は.emit
が正しく動作.complete
すべてが続く呼び出します。 しかし、私が.error
と呼んだ場合、.complete
はObjectUnsubscribedError
を投げます。
.error
とは何ですか?このコードでは間違って何をしていますか?
なぜここでerror()とcomplete()を呼び出しますか?コンポーネントの 'locationWatcher observer'を購読している場所でそれらを呼び出す/使用するべきです。 – micronyks
エラーは、イベントに何か問題が生じたこと、またはイベントが特別なタイプのイベントを発生させていることを意味しますか?ドキュメントを見ると、特別な種類のイベントが発生しているようですが、必ずしも 'EventEmitter'が購読されていないということではありませんか? – Linvi
'error()'と 'complete()'はまったく使われていないと思います。 'EventEmitter'は現在' Observable'を拡張していますが、これは実装の詳細であり、いつでも非推奨フェーズなしで変更される予定です。 'EventEmitter'はコンポーネントの' @Output() 'のみに使い、' emit() 'メソッドだけを使います。 –