在Angular中,在数据之间创建时间表(或定时器)



我想更新一下我的页面

像"subscribe"one_answers";unsubscribe"多次与

在大约10分钟后更新页面,同时不在DataBase

上做标题。
import { Component, OnDestroy, OnInit } from '@angular/core';
import { Subscription } from 'rxjs';
import { MaintenanceServicesService } from './MaintinanceService/maintenance-services.service';

@Component({
selector: 'app-maintenance',
templateUrl: './maintenance.component.html',
styleUrls: ['./maintenance.component.scss']
})
export class MaintenanceComponent implements OnInit, OnDestroy {
pageCards: any[] = []
subscripe?: Subscription

constructor(private _MaintenanceServicesService: MaintenanceServicesService) {
}
ngOnInit(): void {
this.subscripe = this._MaintenanceServicesService.pageCards.subscribe({
next: () => {
this.GetPageCards()
}
});
}
ngOnDestroy(): void {
if (this.subscripe) {
this.subscripe.unsubscribe()
}
}
GetPageCards() {
this._MaintenanceServicesService.GetServicesPageCards()
this.pageCards = this._MaintenanceServicesService.pageCards.getValue()
}
}

标题容易误导。当你的数据出现时,BehaviorSubject会发出值。

你不需要每隔一段时间就订阅/取消订阅数据,这就是可观察对象的全部目标——只要数据出现,你就会对其做出反应。

在这个例子中,你可以发现有一个定时器是如何创建可观察对象的,它有一些initialDelay(你可以把它设置为0),在延迟之后,它使用interval值来定义发射事件之间的时间。所以现在你有了一个流,每个interval值都会发出一些东西,这里你想做一些事情-所以你从你的服务中获取数据并返回它。

另一件事-不需要订阅/退订,只需将结果分配给data$变量(它是可观察的),并且在模板中您可以使用| async管道,因此它将自动处理订阅/退订。

pageCards: any[] = []
subscripe?: Subscription

constructor(private _MaintenanceServicesService: MaintenanceServicesService) {
}
ngOnInit(): void {
this.subscripe = timer(0, 5000).subscribe(() => {
this._MaintenanceServicesService.pageCards.pipe(take(1)).subscribe({
next: () => {
this.GetPageCards()
}
});
})
}

这就是我如何做到的,谢谢你@akkonrad

相关内容

  • 没有找到相关文章

最新更新