반응형
vuex 저장소 작업의 약속에서 오류를 반환하는 중
인증에 실패하면 오류를 반환하는 파서를 사용하여 로그인 액션을 설정하려고 합니다.다음으로 오류를 검출하여 오류를 표시한 컴포넌트로 되돌립니다.그러나 나는 항상 다루기 힘든 약속 거절을 당한다.
나는 이미 오류를 거부하거나 반환하는 다른 방법을 시도했지만 성공하지 못했다.reject(오류)(여기서 권장하는 Vuex 액션으로부터의 약속 반환) reject(오류) return Promise.reject(오류)가 Promise를 반환합니다.reject(새로운 오류(오류)) 또는 단순히 오류를 반환한다.
내 액션:
actions: {
login(vuexContext, authData) {
console.log(authData.email)
Parse.User.logIn(authData.email, authData.password)
.then(user => {
vuexContext.commit('SET_USER', user)
})
.catch(error => {
console.error('Actions login - Error: ' + error)
reject(error)
})
}
전송 방법:
onSubmit() {
this.$store
.dispatch('login', {
email: this.formData.email,
password: this.formData.password
})
.then(() => {
// ..
})
.catch(error => {
console.log('Catching' + error)
if (error.code == 101) {
this.errorMsg = 'Email oder Passwort falsch'
} else {
this.errorMsg =
'Entschuldigung, hier ist etwas schief gelaufen... Fehler: ' +
error.message
}
this.showError = true
this.$router.push('/sessions/new')
})
}
onSubmit 메서드의 catch block이 에러를 검출하는 것을 상정하고 있습니다.
함수 반환을 새로운 약속으로 포장해야 합니다.
actions: {
login(vuexContext, authData) {
return new Promise((resolve, reject) => {
console.log(authData.email)
Parse.User.logIn(authData.email, authData.password)
.then(user => {
vuexContext.commit('SET_USER', user)
resolve()
})
.catch(error => {
console.error('Actions login - Error: ' + error)
reject(error)
})
})
}
}
언급URL : https://stackoverflow.com/questions/54378801/returning-error-from-promise-in-vuex-store-action
반응형
'programing' 카테고리의 다른 글
C에서는 객체 지향 코드를 어떻게 쓸 수 있을까요? (0) | 2022.07.16 |
---|---|
GObject 및 Glib 학습 자료 (0) | 2022.07.16 |
VueJ : 라우팅 혼선 (0) | 2022.07.16 |
대신 wget을 통해 Linux에서 Java JDK를 다운로드하면 라이센스 페이지가 표시됩니다. (0) | 2022.07.16 |
NuxtJs에서 Facebook 픽셀을 Import하는 방법 (0) | 2022.07.16 |