我能够解决退还我的诺言
Promise {<pending>}
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: Array(7)
但是这次我在提取变量时遇到了问题,在这种情况下,事实证明,我要提取它的原因是将其存储在react useState中。
这是代码
const fsdasfda = db
.collection("socios")
.where("activity", "==", "true")
.orderBy("num")
.get()
.then(function (query) {
const array = [];
query.forEach(function (doc) {
const data = doc.data();
array.push(data);
});
return array;
})
.then((result) => {
console.log(result);
});
console.log(fsdasfda);
const [unidades,setUnidades] = useState(HERE);
console.log(结果);它返回我要传递给使用状态的数据。 console.log(fsdasfda);承诺回报
如前所述,我想将RESULT值传递给useState
我尝试了一下,但它仍然是一个应许。
fsdasfda.then((数据)=> console.log(数据));
答案 0 :(得分:0)
您将在记录承诺时获得此日志,将await添加到数据库查询中(此代码段应在异步函数内),然后使用fsdasfda.then(data => updateState(data));
const fsdasfda = await db // added await
.collection("socios")
.where("activity", "==", "true")
.orderBy("num")
.get()
.then(function (query) {
const array = [];
query.forEach(function (doc) {
const data = doc.data();
array.push(data);
});
return array;
})
.then((result) => {
console.log(result);
});
fsdasfda.then(data => {
console.log(data);
setUnidades(data); // updating state and logging result data.
});
检查是否可以正常工作。