TIM*_*MEX 6 javascript promise
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();
});
}));
}
Run Code Online (Sandbox Code Playgroud)
现在,如果 snapshot.val() 为 null,则该元素仍包含在最终结果中。
如何不在最终映射中插入空元素?
添加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);
}
Run Code Online (Sandbox Code Playgroud)
更新:如果您需要删除与值完全一致的null元素,您应该使用此过滤器:v => v !== null。
| 归档时间: |
|
| 查看次数: |
3035 次 |
| 最近记录: |