From my understanding of async pipe, it's a quicker way of subscribing to an observable in fewer lines. However I'm trying to understand in what circumstances would I need to use it over a traditional subscription like my current component below?
import { Component, OnInit } from '@angular/core';
import { HttpService } from "./services/http.service";
import { Main } from "./interfaces/data-interface";
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
constructor(private httpService: HttpService) {
}
mainData: Main;
itemIndexFocus: number = 0;
ngOnInit() {
this.httpService.getFighterDetail()
.subscribe((res) => {
this.mainData = res.body;
});
}
}
httpservice file:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from "@angular/common/http";
import { Observable } from 'rxjs';
@Injectable()
export class HttpService {
constructor(private http: HttpClient) { }
getFighterDetail(): Observable<any> {
return this.http.get("/MYAPI", { responseType: 'json', observe: 'response' })
}
}
It is just a case that I could always use async pipe? If I'm populating a reactiveform with values from an api then I guess my above component's approach would be the more beneficial one.