J'ai un projet de back 7-8 angular 7-8 est nœud.js, je n'ai pas trouvé de solution sur la façon de vérifier si mon enregistrement inséré ou mis à jour avec succès dans la base de données.
Voici mon service. >
UpdateData(data, id) {
try {
return this.http.post(this.baseurl + "/update/" + id, data)
.subscribe(result => console.log(result));
} catch (err) {
console.log("-------Error occurred update posting----" + err);
this.handleError(err);
}
}
3 Réponses :
Ceci peut être fait dans la méthode d'abonnement, comme ci-dessous: Toutefois, si vous souhaitez vérifier l'erreur / le succès de votre composant, vous ne devez vous abonner à votre service et exécuter le Inscrivez-vous réel dans votre composant comme ci-dessous: p> Service: P> this.serviceInstance.UpdateData(data, id).subscribe(result => console.log(result),
(error) => { /* error logic */ }, () => { /* success logic */})
J'ai ajouté cette partie, mais je dois vérifier mon composant.ts Si l'enregistrement inséré avec succès, je contemplerai donc le succès de snackbar ou j'ai échoué afin que je contemplais le snackbar a échoué.
Les multiples paramètres S'inscrire CODE> sont obsolètes La nouvelle syntaxe est S'abonner ({Suivant: résultat => {}, erreur: err => {}}) code>
Github.com/reactivex/rxjs/blob/ maître / src / interne / ...
class MyComponent {
public InsertRecord(data, id) {
try {
const result = await this.myService.UpdateData(data, id).toPromise();
// show success
} catch (err) {
// show fail
}
}
}
Comment puis-je enregistrer mon composant.ts Fichier que l'enregistrement inséré est inséré avec succès, donc je contemplais le succès de SnackBar ou si vous avez échoué, je suis tombé sur le snackbar
Demandez une nouvelle question, mais en bref: updateateata (données, id) {retour this.http.post (this.baseurl + "/ update /" + identifiant, données); } code>
import { BehaviorSubject } from 'rxjs';
export class dataService {
public tosterData = new BehaviorSubject<any>([]);
toster(data, status) {
const obj = {
message: data,
status: status
}
this.tosterData.next(obj);
}