You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+16-3
Original file line number
Diff line number
Diff line change
@@ -1589,8 +1589,13 @@ export class CounterComponent {
1589
1589
<details>
1590
1590
<summary>Что такое ngZone?</summary>
1591
1591
<div>
1592
-
<br>
1593
-
Сервис внедрения зависимостей, который может работать вне Angular. Распространено использование этого сервиса для оптимизации производительности при запуске работы, состоящец из одной или нескольких асинхронных задач, которые не требуют обновления Angular-ом пользовательского интерфейса или обработки ошибок.
1592
+
<br>
1593
+
1594
+
<ahref="https://angular.io/api/core/NgZone">NgZone</a> - это сервис, который является обёрткой над zone.js, для выполнения кода внутри или вне зоны Angular. Этот сервис создаёт зону с именем angular для автоматического запуска обнаружения изменений, когда выполняются следующие условия:
1595
+
<li>Когда выполняется синхронная или асинхронная функция</li>
1596
+
<li>Когда нет запланированной микрозадачи в очереди</li>
1597
+
1598
+
<br>Наиболее распространённое применение NgZone — это оптимизация производительности посредством выполнения асинхронной логики вне зоны Angular (метод <code>runOutsideAngular</code>), тем самым не вызывая обнаружение изменений или обработку ошибок. Или наоборот, данный сервис может использоваться для выполнения логики внутри зоны (метод <code>run</code>), что в конечном итоге приведёт к тому, что Angular снова вызовет обнаружение изменений и при необходимости перерисует представление.
<summary>В чем разница между Subject, BehaviorSubject, ReplaySubject, AsyncSubject?</summary>
1784
1789
<div>
1785
-
in progress..
1790
+
<br>
1791
+
1792
+
<ul>
1793
+
<li>Subject - не хранит свои предыдущие состояния, зритель получает информацию только тогда, когда Subject сгенерирует новое событие, используя метод <code>.next()</code>.</li>
1794
+
<li>BehaviorSubject - при подписке поведенческий Subject уведомляет своего зрителя о последнем произошедшем в нём событии или, если в Subject-е не происходило событий, создаёт для зрителя событие с изначальной информацией, которая передаётся при создании Subject-а.</li>
1795
+
<li>ReplaySubject - при подписке повторяющийся Subject уведомляет своего нового зрителя о всех произошедшем в нём событиях с момента создания. Для оптимизации при создании повторяющегося Subject-а можно передать число последних событий, которые будут повторяться для каждого нового зрителя. Стоит отметить, что создание ReplaySubject-а c числом повторяющихся событий равное 1 эквивалетно созданию BehaviorSubject-а.</li>
1796
+
<li>AsyncSubject - асинхронный Subject уведомляет своих зрителей только о последнем произошедшем событии и только когда Subject успешно завершается. Если AsyncSubject завершится ошибкой, его зрители будут уведомлены только об ошибке.
0 commit comments