Ich verwende Vue.js mit Vue-Apollo und initiiere eine Benutzer-Mutation, um einen Benutzer anzumelden. Ich benutze den graph.cool Dienst.Apollo-Mutationsfehler für Benutzer in Vue.js anzeigen?
Ich habe eine Anfrage Pipeline-Funktion, um einige Fehler, wie eine ungültige E-Mail zu fangen.
Wenn die Anfrage mit ungültiger/ungültiger Eingabe erfolgt, wird mein Fehler catch()
ausgelöst (wie erwartet) und in der Registerkarte Netzwerk kann ich die JSON für die benutzerdefinierten Fehlermeldungen anzeigen. Aber wie greife ich auf diese Fehler/Antwort vom Catch aus, wenn ein Fehler von graph.cool ausgelöst wird?
Beispiel:
signin() {
const email = this.email
const password = this.password
this.$apollo.mutate({
mutation: signinMutation,
variables: {
email,
password
}
})
.then((data) => {
// This never fires on an error, so I can't
// show the user the errors in the network repsonse.
console.log(data)
})
.catch((error) => {
// Error in this part fires in the console
// but I'm unable to show the JSON response
// errors because the 'then()' above doesn't execute.
console.error(error)
})
}
ich folgende Fehlermeldung für einen nicht erkannten Benutzer erhalten:
Error: GraphQL error: No user found with that information at new ApolloError (eval at (app.js:956), :34:28) at eval (eval at (app.js:1353), :139:33) at
Jede Idee, wie die Fehler in der Reaktion zu zeigen, innerhalb der catch()
?
Ich kann buchstäblich die Fehler sehe ich hier an den Benutzer in der Antwort auf die Registerkarte Netzwerk angezeigt werden soll:
... aber ich kann nicht herausfinden, wie es zu tun.
Jede Hilfe sehr geschätzt! Vielen Dank.
Ich denke, Sie können ein weiteres '.then' nach dem' .catch' hinzufügen: https://stackoverflow.com/questions/35999072/what-is-the-äquivalent-of-luebird-promites-finally-in- native-es6-versprechen – thanksd
Während das stimmt, kann ich die "Daten" in der eigentlichen Antwort selbst nicht bekommen. :( –