javascript - 如何访问在 .then() 方法中定义的变量,在方法之外 - JavaScript?
问题描述
在下面的代码/示例中,如何访问在 db.collection()...then() 方法中定义的 likecount 变量?我觉得我已经尝试了互联网上的所有解决方案,但结果总是不确定。
代码:
var parsed = path.split("/");
var likecount;
db.collection(parsed[0]).doc(parsed[1]).collection(parsed[2]).doc(parsed[3]).collection("likes").get().then(function(querySnapshot) {
likecount = querySnapshot.size
console.log(likecount)
})
整个代码(包括我尝试访问的地方likecount
):
firebase.auth().onAuthStateChanged(function(user) {
var query = db.collectionGroup("userPosts")
query.get().then(querySnapshot => {
setupPosts(querySnapshot.docs)
})
const posts = document.querySelector('.posts');
const setupPosts = (data) => {
let html = '';
data.forEach(doc => {
const post = doc.data();
const picURL = post.picURL;
var path = doc.ref.path;
var parsed = path.split("/");
var likecount;
db.collection(parsed[0]).doc(parsed[1]).collection(parsed[2]).doc(parsed[3]).collection("likes").get().then(function(querySnapshot) {
likecount = querySnapshot.size
console.log(likecount)
})
let li = `<li class="post">
<h3 class="content">${post.content}</h3>
<button class="comment" onclick="comment('${path}')">Comment</button>
<button class="like" onclick="like('${path}')">Like</button>
<span class="like-count">${likecount}</span>`;
li += (post.picURL ? `<img class="img" src="${picURL}" onclick="openImage('${picURL}')">` : ``);
li += `</li><br></br>`;
html += li
})
posts.innerHTML = html;
}
解决方案
推荐阅读
- ios - 我们如何注册一个多平台应用程序以在 iOS 14 中接收通知?
- c++ - Opencv 恢复到比我设置的分辨率更高的分辨率
- php - 哎呀 PHP登录检查散列密码
- python - 我正在尝试通过根据 2 列对其进行排序来组织我的 csv 数据
- c++ - 如何使用 CImg 打开图像?
- php - 带有两个下拉菜单的 PHP 表单未发送
- amazon-web-services - 如何使用 S3FS 挂载 AWS s3 以允许任何用户完全访问
- typescript - typeRoots tsconfig.json 为 node_modules/@types 设置,但尽管安装了所有关联的 @types,但 vs 代码仍然无法识别
- php - 基于选择调用jQuery的下拉菜单
- sql - 在 Oracle 中准确计算经过的年数,考虑闰年