作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试检索项目中的 Firebase 用户。我可以检索它们,但主程序永远不会结束。我使用 VS Code 进行调试或使用 npm run 运行脚本,但两种方式都会卡住。在 VS Code 中,堆栈上没有任何内容......它永远不会停止
admin.auth().listUsers 返回一个 listUsersResult 对象,其属性为 nextPageToken 和一个 users 数组
const BATCH_SIZE = 2;
const listAllUsers = async (nextPageToken = undefined) => {
let listUsersResult = await admin.auth().listUsers(BATCH_SIZE, nextPageToken);
if (listUsersResult.pageToken) {
return listUsersResult.users.concat(await listAllUsers(listUsersResult.pageToken));
} else {
return listUsersResult.users;
}
};
const uploadUsersMain = async () => {
try {
// if I comment out this call, then there is no problem
let firestoreUsers = await listAllUsers();
} catch(error) {
log.error(`Unable to retrieve users ${error}`)
}
finally {
// do stuff
}
}
uploadUsersMain();
什么问题可能会导致主程序无法结束?我应该寻找什么?谢谢
最佳答案
要关闭您的脚本,您应该使用
await admin.app().delete();
只要有句柄,Node.js 就会安静地保持运行,句柄实际上可以是任何东西——当然是网络套接字。
您还可以使用process.exit()
,但最好正确关闭 SDK,而不是在可能未完成时突然退出。
关于javascript - 使用异步和递归的 JS 程序卡在主进程中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56284709/
我是一名优秀的程序员,十分优秀!