Hirdetés

Keresés

Új hozzászólás Aktív témák

  • cattus
    addikt

    Na megint csak lett egy pár, remélhetőleg egy ideig utolsó kérdéseim is :D

    Végig értem az angular tutorialon,itt a forrás ha ez segít átlátni jobban

    InMemoryDataService ezt használta az adatok szimulálására, kicsit elvesztem, hogy honnan is kapom az adatokat, ezzel lettek lekérve, az url: api/heroes, de ez honnan jön, vagy ez az InMemoryDataService válaszol ezekre a kérésekre?
    És ez a tap fv vagy micsoda, ez mit akar csinálni? Sikeres kérésre csinál valamit, a cathError meg a sikertelenre?

    getHeroes (): Observable<Hero[]> {
    return this.http.get<Hero[]>(this.heroesUrl)
    .pipe(
    tap(_ => this.log('fetched heroes')),
    catchError(this.handleError('getHeroes', []))
    );
    }

    Na meg van ez, látom, nagyjából, hogy mit akar csinálni, de ez jelenleg borzasztóan néz ki számomra, mondjuk inkább úgy, hogy magamtól nem hiszem, hogy ezt meg tudnám írni,hogyan kellene ezt értelmezni szintaktikailag?
    private handleError<T> (operation = 'operation', result?: T) {
    return (error: any): Observable<T> => {
    // TODO: send the error to remote logging infrastructure
    console.error(error); // log to console instead
    // TODO: better job of transforming error for user consumption
    this.log(`${operation} failed: ${error.message}`);
    // Let the app keep running by returning an empty result.
    return of(result as T);
    };

    +1
    ugye itt beépített adatokkal dolgoztam, de ha össze akarom lőni PHP backend-el, akkor a hero.service.ts-ben a getHeroes metódusba az URL az majd a PHP hozzá hasonló getHeroes URL-re fog mutatni, ahol majd egy JSON objektumba kapja meg az adatokat?

    És ez a tap fv vagy micsoda, ez mit akar csinálni? Sikeres kérésre csinál valamit, a cathError meg a sikertelenre?

    A catchError igen, a tap ennél kicsit összetettebb. Dokumentáció -> [link]
    Lényegében egy side-effectet csinál anélkül, hogy a forrás Observable-t megváltoztatná. Érdemes utánnanézni a pipe opreátornak és használatának -> [link]

    A handleError első paraméterként megkapja, hogy melyik függvényben keletkezett a hiba. Maga a handleError egy (error: any): Observable<T> szignatúrájú függvénnyel tér vissza. Ez a függvény kilogolja konzolra és a saját logger függvénnyel az errort, majd visszaadja az esetlegesen paraméterként kapott változót Observable-be csomagolva (erre szolgál az of(result as T)).

    Utolsó kérdésedre: igen, definiálsz a backenden egy végpontot, amin JSON-ban adod vissza az adatot, majd a frontendről ezt a végpontot hívod HttpClient-tel.

Új hozzászólás Aktív témák