作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个功能:
export const createUser = (email, password) =>
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(res => console.log(res))
.catch(error => {
console.log(error)
return error
});
我将此函数导入到我的 React 组件中,如果它抛出错误,则将消息设置为它的状态:
const process = createUser(email, password)
console.log(process)
但是上面记录了函数的全部细节。我试图捕获前端,获取 process.error
,同时将错误放入导出函数的括号中,还尝试以某种方式获取消息,如下所示:process.A.i.L.message
,但没有任何效果。如何解决这个问题?
最佳答案
由于 createUserWithEmailAndPassword
是异步的,您应该返回一个 Promise
而不是返回 .catch()
的结果。我还没有测试过这个解决方案,但你应该可以这样做:
// definition
function createUser(email,password) {
return new Promise((resolve, reject) => {
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(res => resolve(res))
.catch(error => {
console.log(error)
reject(error)
})
})
}
// when you are calling the function
createUser(email, password)
.then(process => console.log(process))
.catch(err => console.log(err))
关于javascript - 如何从 firebase 函数返回错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53085475/
我是一名优秀的程序员,十分优秀!