如何转换此代码 (Promise):
registerUser(formData) {
firebase.auth().createUserWithEmailAndPassword(formData.email,formData.passwords.password)
.then((user) => {
firebase.database().ref(`/users/${user.uid}`).set({
id: user.uid,
email: formData.email
})
this.routing.navigate(['/login']);
}).catch((error) => {
console.log(error);
})
}
进入这个(异步/等待):
async registerUser(formData){
try{
await firebase.auth().createUserWithEmailAndPassword(formData.email,formData.passwords.password);
firebase.database().ref(`/users/${user.uid}`)
.set({id: user.uid,email: formData.email});
this.routing.navigate(['/login']);
return true;
}catch(error){
return false;
}
}
如何获取user.uid
(即注册用户uid)?在 promise 中它是如此简单,因为我只需要将参数(用户)传递给 then。
谢谢,求助:)
最佳答案
How can I get
user.uid
...
user
是由await
表达式返回的,所以添加let user =
(或const user =
)在它前面:
async registerUser(formData){
try{
const user = await firebase.auth().createUserWithEmailAndPassword(formData.email,formData.passwords.password);
// ^^^^^^^^^^^^^
firebase.database().ref(`/users/${user.uid}`)
.set({id: user.uid,email: formData.email});
this.routing.navigate(['/login']);
return true;
}catch(error){
return false;
}
}
关于javascript - Angular2 对异步/等待的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41241759/