【问题标题】:Async Functions - Firebase, Document Event Listener异步函数 - Firebase,文档事件监听器
【发布时间】:2020-12-06 01:11:27
【问题描述】:

我一直收到以下错误Uncaught SyntaxError: await is only valid in async function。我试过在async 所在的地方移动,我到处找,找不到解决方案。提前致谢。

    document.addEventListener('click', async () => async function(e){
        if(e.target && e.target.id == 'update-order'){
            updateCart();
        }
    }, false);
    
    async function updateCart(){
        firebase.auth().onAuthStateChanged(firebaseUser => {
            let username = getUsername(firebaseUser);
            var databaseRef = firebase.database().ref();
            var foods = document.getElementsByClassName("food-name-id");
            for(let i = 0; i < foods.length; i++){
                let foodData = await queryDB('USERS/' + username + '/CART', 'NAME', foods[i].innerHTML);
                let foodKey = await queryDBKey('USERS/' + username + '/CART', 'NAME', foods[i].innerHTML);

                var postData = {
                    NAME: foodData.NAME,
                    QUANTITY: document.getElementById("quantity-" + foodKey).value,
                    CATEGORY: foodData.CATEGORY,
                    PRICE: foodData.PRICE,
                  };
                var newItemRef = databaseRef.child(username + "/CART/"+ foodKey);
                newItemRef.update(postData);
            }  
            

        });
    }

【问题讨论】:

    标签: javascript firebase-realtime-database async-await firebase-authentication


    【解决方案1】:

    您在传递给onAuthStateChanged() 的回调函数中使用await,因此如果您想在其中使用await,则必须声明async

    firebase.auth().onAuthStateChanged(async (firebaseUser) => {
    

    【讨论】:

    • 你是我的英雄。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多