Call a function every x seconds in Angular; Through this tutorial, we will learn how to call a function every x seconds in angular 8, angular 9, angular 10, angular 11, angular 12, angular 13,angular 14, 15, 16 versions.
With the help of this tutorial, we can use a timer() to call API every X (5, 10, 20, 60) seconds in angular apps.
Call a function every x seconds in Angular
Just follow the following steps to call a function every x seconds in angular applications:
- Step 1 – Create New Angular App
- Step 2 – Import HttpClientModule
- Step 3 – Create Service for API
- Step 4 – Use Service to Component
- Start 5 – Run Angular App
Step 1 – Create New Angular App
Execute the following command on the command line to create your angular app:
ng new my-new-app
Step 2 – Import HttpClientModule
Then open app.module.ts file and import HttpClientModule to into it; is as follows:
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { HttpClientModule } from '@angular/common/http'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, HttpClientModule ], providers: [], bootstrap: [AppComponent] }) export class A
Step 3 – Create Service for API
Execute the following command on command line to create service for http client request; is as follows:
ng g s services/post
Visit to src/app/services/ directory and open post.service.ts. Then add the following code into it:
import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Injectable({ providedIn: 'root' }) export class PostService { private url = 'http://jsonplaceholder.typicode.com/posts'; constructor(private httpClient: HttpClient) { } getPosts(){ return this.httpClient.get(this.url); } }
Step 4 – Use Service to Component
Then use the above created service in component; so visit src/app/ directory and open app.component.ts file. And then add the following code into it:
import { Component, OnInit, OnDestroy } from '@angular/core'; import { PostService } from './services/post.service'; import { Subscription, timer } from 'rxjs'; import { switchMap } from 'rxjs/operators'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit, OnDestroy { posts:any; subscription !: Subscription; constructor(private service:PostService) {} ngOnInit() { this.subscription = timer(0, 5000).pipe( switchMap(() => this.service.getPosts()) ).subscribe(result => console.log(result) ); } ngOnDestroy() { this.subscription.unsubscribe(); } }
Start 5 – Run Angular App
Finally execute the following command on command line to run the Angular app:
ng serve