Javascript 检查promises.push后是否返回后值
我有这个:Javascript 检查promises.push后是否返回后值,javascript,reactjs,firebase,firebase-realtime-database,Javascript,Reactjs,Firebase,Firebase Realtime Database,我有这个: var post = firebase.database().ref('/posts/' + value).orderByKey(); promises.push( post.once('value').then((snapshot2) => Object.assign(snapshot2.val(), { key: snapshot2.key, likeOrNot: likeOrNot }))); if posts/value if不是posts中
var post = firebase.database().ref('/posts/' + value).orderByKey();
promises.push(
post.once('value').then((snapshot2) => Object.assign(snapshot2.val(), {
key: snapshot2.key,
likeOrNot: likeOrNot
})));
if posts/value if不是posts中的有效值,我会得到以下错误:Uncaught(in promise)TypeError:无法将未定义或null转换为object
我想在推送邮件之前检查一下!==null或类似的内容以避免此错误
有什么想法需要更改吗?我建议使用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
array…)