0
votes

Pourquoi ne puis-je pas renvoyer les données d'un service API dans Ionic 4?

Je pervers de 3 à 4 ioniques et continuez à rencontrer des problèmes avec mes services d'API. Dans ce cas particulier, j'essaie de récupérer des billets d'un utilisateur afin que je puisse les énumérer.

Malheureusement, chaque fois que je fais que je reçois le message d'erreur 'whoops', même si les billets sont extraites avec succès de l'API. En plus de cela, je ne peux pas sembler comprendre comment obtenir avec succès les billets renvoyés du service dans ma page; Je reçois actuellement un ne peut pas lire la propriété 'puis' de l'erreur indéfinie code>. P>

en haut de cela, les données code> sont maintenant revenant comme Data: [Objet Object], [Objet d'objet] CODE> P>

Ticket.Service H2>
ngOnInit() {
    this.getSubmittedTickets();
}

getSubmittedTickets() {
    this.ticketService.getSubmittedTickets()
    .then(data => {
        this.tickets = data;
        console.log('tickets: '+this.tickets);
    });
}


0 commentaires

3 Réponses :


0
votes

Le nom de la méthode dans votre service est getTickets () . Mais dans votre fichier TS, vous avez utilisé getSubmittedTickets () .

Le code de votre fichier TS doit être:

getSubmittedTickets() {
    this.ticketService.getTickets()
    .then(data => {
        this.tickets = data;
        console.log('tickets: '+this.tickets);
    });
}


1 commentaires

C'était juste une faute de frappe lors de la création de ce message; c'est correct dans le service.



0
votes

vous devez convertir observable en promesse avec toPromise

getSubmittedTickets() {
    let body = new FormData();
    body.append('username', this.username);
    body.append('password', this.password);
    return this.http
        .post(this.apiService.url, body)
        .toPromise()
}


1 commentaires

Renvoie La propriété 'subscribe' n'existe pas sur le type 'Promise ' . Basculé subscribe () sur puis () et reçu La propriété 'alors' n'existe pas sur le type 'void'



0
votes

Le service doit renvoyer un Observable

getSubmittedTickets() {
    this.ticketService.getSubmittedTickets()
    .subscribe(data => {
        this.tickets = data;
        console.log('tickets: '+this.tickets);
    });
}

et le composant appelle la méthode à partir du service puis s'abonne à la valeur renvoyée

getSubmittedTickets() {
    let body = new FormData();
    body.append('username', this.username);
    body.append('password', this.password);
    return this.http.post(this.apiService.url, body);      
}

p>


3 commentaires

Cela a fonctionné, mais console.log ('tickets:' + this.tickets); renvoie tickets: [object Object], [object Object]


Et quel est le problème avec le console.log? Il est probablement en train d'imprimer (d'enregistrer) un tableau d'objets. Ou c'est une chaîne?


Il imprime des tickets: [object Object], [object Object] au lieu du tableau