如何从解决承诺中获得价值?

时间:2020-06-14 03:20:35

标签: javascript ecmascript-6 promise

摘要为

var name = firebase.firestore().collection('users_info').doc(uid).get().then(async function(doc) { 
        const usr = await doc.data().name;
        console.log(usr);
        return  await(usr); 
});
console.log(name); 

名称记录以下内容

Promise {<pending>} __proto__: Promise [[PromiseStatus]]: "resolved" [[PromiseValue]]: "hello"

并且usr记录了您好,请帮助我获取名称中的值。

1 个答案:

答案 0 :(得分:0)

您要链接一个then / catch来解析promise的名称,或者可以将整个块包装在async / await中,然后调用该函数:

            async function fetchData() {
                try {
                    var name = await firebase.firestore().collection("users_info").doc(uid).get();
                    const usr = await doc.data().name;
                    console.log(usr);
                    console.log(name);
                    return usr;
                } catch(e) {
                    console.log(e);
                }

            }