J'ai un écran avec une liste de gauche ayant des liens différents et le côté droit montrant les détails de chacun. J'utilise le service ci-dessous pour obtenir les détails.Annuler les demandes précédentes et attraper les erreurs dans Angular 4 http
getDetails(id: string) : Observable<any>{
const url = `${environment.server}/api/details/${id}`
return Observable.of(1)
.debounceTime(2000)
.switchMap(() => this.http.get(url))
.map(r => r.json())
}
- Est-ce une bonne approche pour utiliser
Observable.of(1)
où1
n'a pas de signification? Y a-t-il une approche différente? - Est-ce ainsi que nous empêchons plusieurs clics/demandes de détails et ne répondons qu'au plus récent?
- Dans ce cas, comment puis-je détecter les erreurs dans
http
?
La principale chose que je veux est devrait être annulée dès qu'une nouvelle demande est faite, il ne devrait pas continuer Procesing dernier appel après est fait un nouvel appel les appels précédents http. – sabithpocker
vous voudrez peut-être vérifier cela: [link] (https://stackoverflow.com/questions/36490926/how-to-cancel-a-httprequest-in-angular-2) mais honnêtement, je voudrais encore essayer de trouver un manière d'éviter cela. Lorsque vous annulez/désinscrivez une requête, cela ne signifie pas que le serveur arrête de faire quoi que ce soit. Sur le côté serveur, la demande sera traitée comme d'habitude. Pour éviter de surcharger le serveur avec des requêtes inutiles, vous pouvez reconsidérer :) jm2c – djnose
@djnjsone Merci pour votre suivi. Je comprends cela lentement et je me désabonne pour annuler les demandes précédentes. Mais comme vous l'avez mentionné, est-il possible d'éviter de surcharger le serveur avec des requêtes inutiles? – sabithpocker