javascript - Javascript数组函数不返回数组
问题描述
我正在尝试从此函数返回一个字符串数组:
let returnArr = [];
export async function snapshotToArray() {
const db = firebase.firestore();
db.collection('userinfo').get().then(querySnapshot => {
querySnapshot.forEach(documentSnapshot => {
let id = documentSnapshot.id;
returnArr.push(id).toString();
});
console.log(returnArr);
return returnArr;
});
}
正在从此函数调用数组创建函数:
export async function getStaticPaths() {
const paths = await snapshotToArray();
return {
paths,
fallback: false
}
}
无论出于何种原因,它似乎都没有返回我在控制台中看到的内容。
这是我收到的错误:
Error: Invalid `paths` value returned from getStaticPaths in /user/[name].
`paths` must be an array of strings or objects of shape { params: [key: string]: string }
我已经尝试了很多不同的方法来做到这一点,但我似乎无法弄清楚。任何帮助表示赞赏。
解决方案
似乎 snapshotToArray 函数没有返回值。
let returnArr = [];
export async function snapshotToArray() {
const db = firebase.firestore();
const querySnapshot = await db.collection('userinfo').get()
querySnapshot.forEach(documentSnapshot => {
let id = documentSnapshot.id;
returnArr.push(id).toString();
});
console.log(returnArr);
return returnArr;
}
以下 async-await 用法应该对您有所帮助。
推荐阅读
- python - 如何将视频拆分为单独的帧,包括音频?
- lua - 团队检查武器经销商 garry 的 mod darkrp 游戏模式
- python - 在一行上多次打印字符串的pythonic方法是什么,用空格分隔?
- python - 使用于访问 Google 云存储的 Google python 客户端库命中存根 API
- bash - 在 bash 中,有没有办法在整数列表中搜索连续序列并删除这些序列中除了最后一个数字之外的所有数字?
- r - 使用 diagrammeR,如何根据条件制作节点填充颜色?
- python-3.x - 如何将3d数组转换为字符串
- python - 如何在此代码中用空格替换标点符号?
- python - 如何过滤模型中的外键?
- hibernate - grails 3.3:带有 findOrSaveWhere 的 org.hibernate.TransientObjectException