angular - Anropa json-fil från URL


Jag försöker hämta en JSON-fil från en URL och få data. Men inget fel och inget fungerar. Jag har ingen aning om hur jag ska lösa det.

service

export class JsonService {


  public getMenuData(): Observable<any> {
    
    return new Observable((observer) => {
      this.http.get('https://demored.ddns.net:50443/demored/path_image/menu.json').subscribe((response)=> {
        observer.next(response);
        observer.complete();
      });
    });
  }

Komponent

ngOnInit() {

    this.getJson();
    
  }

  getJson(){
    this.jsonService.getMenuData().toPromise().then(data => {
      this.menuJson = data;
      console.log("Menu from json file ",this.menuJson);
    }).catch((err) => {
      console.log('error in fetching data',err);
    });
  }

Svar #1

Du gör GET-förfrågan på tjänsten, där du omvandlar förfrågan till ett löfte med toPromise(). Därifrån kan du i vilken komponent som helst anropa metoden för tjänsten som deklarerats i konstruktören this.serviceJson() och lösa upp löftet med .then() eller .catch()

export class JsonService {
  
  getMenuData(): Promise<any> {
   return this.http.get<any>('https://demored.ddns.net:50443/demored/path_image/menu.json').toPromise()
  }

komponent

  ngOnInit() {

    this.getJson();
    
  }

  async getJson(){
   await this.jsonService.getMenuData().then(data => {
      this.menuJson = data;
      console.log("Menu from json file ",this.menuJson);
    }).catch((err) => {
      console.log('error in fetching data',err);
    });
  }