問題タブ [behaviorsubject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
842 参照

nested - ネストされた BehaviorSubject オブジェクトの RxJs getValue

私は angular 4 と RxJS 5 を使用しています。次の構造のオブジェクトがあります (ネストされたサブジェクト、この例では 2 レベルのみ):

したがって、objs の値を出力しようとすると、次のような結果が得られます。

したがって、結果には prop1 と prop2 の値は含まれませんが、第 2 レベルには BehaviorSubject がまだあります。

次のようにネストされた objs 値を取得する方法はありますか?:

ある種のノックアウト ko.toJSON ( http://knockoutjs.com/documentation/plugins-mapping.html )があるかどうか疑問に思っています

BehaviorSubject を入れ子にすることは一般的に悪い習慣だと思いますか、それとも人々が毎日それを行うのですか :)?

0 投票する
0 に答える
677 参照

angular - Angular 4 アプリケーションでの BehaviorSubject エラー

Angular 4 アプリケーションで奇妙な問題が発生しました。私のコンポーネントは、Service の BehaviorSubject をサブスクライブします。そのサブスクライブ(またはマップ、最後に変更されない)で、 data.json() を呼び出します。これは、最初に実行されたときに(空の配列である BehaviorSubject のデフォルト値から来る)、配列に .json がないため失敗します関数。

一部の PC では、このエラーは、残りのアプリケーションが期待どおりに実行することを妨げません (実際には、エラーはスローされません)。他の場合、このエラーがスローされ、残りのアプリケーションが失敗します。

すべての PC にはまったく同じ環境があり、同じコマンドと angular-cli およびローカルの angular 依存関係を実行しています。これは、ng serve または ng build のいずれかで発生します。このエラーの根本的な原因を突き止めようと何度も試みた結果、「動作している PC」から生成されたファイルは「動作していない PC」で正常に実行できるため、ビルド プロセスで何かを行う必要があることがわかりました。 (「稼働中のPC」に転送された「非稼働中のPC」から生成されたファイル)は失敗します。

この問題の根源は何でしょうか? このエラーのデフォルトの動作をスローする必要がありますか? いずれにせよ、誰かが似たようなことを経験したことがありますか、またはなぜこれが起こるのかについて何か提案がありますか?

0 投票する
1 に答える
2390 参照

angular - switchMap からの BehaviorSubject の場合、getValue は関数エラーではありません

これは私のクラスのTSコードです

これはサービスからのコードです

私は型を宣言し、型もキャストしますが、それでも私が書くとき

次のエラーが表示されます。

エラー TypeError: this.product$.getValue は関数ではありません

ありがとう

0 投票する
1 に答える
490 参照

angular - HTTP呼び出しAngular2から以前と現在の値を取得

最初のサービス コールと同じ URL の新しいサービス コールから取得した値を比較する必要があるシナリオがあります。

サービス クラス:

では、このサービスを次のようComponent 1に呼び出します。ngOnInit

//この時点で、最初の値があります

では、 でcomponent 2返される値に違いがあるかどうかを確認するために同じメソッドが呼び出されComponent 1ます。

どうすればこれを達成できますか?

ReplaySubject と BehaviorSubject を使用してみましたが、うまくいきませんでした。