AckHandler
现在,如果snapshot.val()为null,则该元素仍包含在最终结果中。
我如何不在最终地图中插入空元素?
答案 0 :(得分:3)
添加then
回调并使用Array#filter
删除null
元素:
exports.getMentionedUsers = function(str) {
return Promise
.all(getUsernamesFromString(str).map(username => {
return db.ref('/users').orderByChild('username').equalTo(username).once('value').then(snapshot => {
return snapshot.val();
});
}))
.then(values => values.filter(v => v);
}
更新:如果您需要使用null
值删除完全的元素,则应使用此过滤器:v => v !== null
。