後、私はこのようになりますシンプルなAngular2テンプレートを持っている消えます私の見解では100項目のリストが表示されますが、数秒後(5〜15秒後)、エラー/警告なしで消えます。アイテムは〜10秒[Angular2、* ngFor]
どうしてですか?
後、私はこのようになりますシンプルなAngular2テンプレートを持っている消えます私の見解では100項目のリストが表示されますが、数秒後(5〜15秒後)、エラー/警告なしで消えます。アイテムは〜10秒[Angular2、* ngFor]
どうしてですか?
for
ループがmap
変数の反復処理を終了する前に、あなたは(その時点で)messages
変数にmap
要素を空に割り当てているので、実際には、目に見える変化を受信しません。
可能な解決策は、ループが終了するのを待つためにsetTimeout
関数を追加することです。
setTimeout(() => {
this.messages = a.values();
}, 200);
注:フェロープログラマは、我々がここで少し問題を持っている、それはどのようにループを終了するためa.values()
機能が待機しないことがありますか?私はsetTimeout
で修正することができましたが、それは長期間有効ではありません。
誰でも何故このように動作するのですか?
これはplunkrの問題を解決しますが、初期の問題。なぜデータが消えるのでしょうか?どのように私はそれの根本的な原因をデバッグできますか? – alexandernst
@alexandernst '' for'ループが終了する前に '.values()'関数が呼び出されている可能性があるので、正直言って、plunkerの問題は別の質問に値するでしょうか?これは奇妙で、この質問には私よりも賢い人が必要です。そして、あなたの問題について - これはなぜそれが消えているかを判断するのが難しい、 'values()'関数が私にとって疑わしいと思われる。 –
はい、私は同じことを考えています。たぶん 'values()'は、Angularがまだそれを使用していることを正しく検出できないため、ChromeのGCが数秒後に削除する一時的なイテレータを作成していますか? – alexandernst
プランカまたは他の作業中の最小限の例が参考になります。 –
@Kinduser私はplunkrを作成しましたが、まったく動作していないようです。私はバグがすぐに起こったのか、何か間違っているのかどうかはわかりません:https://plnkr.co/edit/US3uPVe4jVfElGNkOXCx?p=preview – alexandernst