Функция - обнаружение изменений углов запускается после завершения асинхронных операций (например, setTimeout), поэтому сам setTimeout вызывает ngAfterViewChecked
, и наоборот.
Вы можете запускать вещи за пределами зоны углов, если вы не хотите, чтобы это произошло, т. е.
ngAfterViewChecked(){
console.log("ngAfterViewChecked 1");
this.ngZone.runOutsideAngular(() => {
setTimeout(() => {
console.log("ngAfterViewChecked 2");
}, 1000);
});
}
Вы можете ввести NgZone в свой конструктор, то есть private ngZone: NgZone
. Проверьте связь между Angular и zone.js для получения дополнительной информации.
Вы можете написать собственный канал для этой цели. Реализуйте ITelemetryChannel
и используйте его метод Send для записи телеметрии на локальный диск.
class FileChannel : ITelemetryChannel
{
public MyChannel()
{
}
public bool? DeveloperMode { get; set; }
public string EndpointAddress { get; set; }
public void Dispose()
{
}
public void Flush()
{
}
public void Send(ITelemetry item)
{
// logic to write item to file..
}
}