javascript - 检查 promises.push 之后是否发布返回值
问题描述
我有这个:
var post = firebase.database().ref('/posts/' + value).orderByKey();
promises.push(
post.once('value').then((snapshot2) => Object.assign(snapshot2.val(), {
key: snapshot2.key,
likeOrNot: likeOrNot
})));
如果帖子/值如果不是帖子中的有效值,我会收到此错误:Uncaught (in promise) TypeError: Cannot convert undefined or null to object
我想在推送之前检查是否 post !== null 或类似的东西以避免此错误。
有什么想法我需要改变吗?
解决方案
我建议使用and的exists()
方法DataSnapshot
如下:
var post = firebase.database().ref('/posts/' + value).orderByKey();
promises.push(post.once('value'));
// ...
return Promise.all(promises)
.then(dataSnapshots => {
const objectsArray = [];
dataSnapshots.forEach(snap =>
if (snap.exists()) {
objectsArray.push(
Object.assign(snap.val(), {key: snap.key, likeOrNot: likeOrNot})
)
}
// ...
// return ...
})
必要时进行微调!!(您可能不需要objectsArray
数组...)
推荐阅读
- jquery - ActiveRecord::RecordNotFound(找不到带有 'id'=undefined 的博客):
- java - 我可以在公共类中声明 Scanner 吗?
- typescript - 如何分两部分创建重用方法?(打字稿,谷歌地图)
- python - 如何使用带有通配符的python打开目录中的多个文件
- java - 使 Alpine 在 ARM64 架构上执行非 musl Java JRE
- text - 在谷歌视觉 OCR 中被识别为单个单词的特殊字符?
- javascript - 解析字符串以获取数组详细信息
- vim - Debian 9 上的 VIM 引导程序
- django - 链接到“self”的 django manytomany 模型在选择时会链接到两个对象。我只想要一个单向链接
- xcode - Xcode 10 的 SwiftLint 扩展