簡體   English   中英

Angular2承諾異步/等待

[英]Angular2 Promise to Async/Await

如何轉換此代碼(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 / await):

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中是如此簡單,因為我只需要傳遞參數(用戶)即可。 感謝幫助: )

我如何獲得user.uid ...

userawait表達式返回,因此在其前面添加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;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM