我正在开展一个项目,我有一个Feed页面,显示所有用户的所有类型的帖子。键入特定列表页面和帖子的详细信息页面。
Pages- 1.饲料 2.清单(特定类型) 3.细节(帖子的详细信息)
所以我跟随Mongo收藏 - 1.饲料 2. type1 post 3. type2帖子 4. type3 ...
现在,当用户发布新帖子时,我将其保存到相应的集合,让我们说'type1 post'并将成功返回给浏览器。但我也想用相同的数据更新我的'Feed'集合。我不希望在发送响应之前完成它。因为这会增加用户的等待时间。因此我使用了事件。这是我的代码 -
const emitter = new event.EventEmitter();
function savePost(){
// Code to save data to Mongo collection
emitter.emit('addToFeeds', data);
console.log('emit done');
return res.json(data);
}
emitter.on('addToFeeds', function(data){
// code to save data to Feeds collection
console.log('emitter msg - ', data);
});
现在,当我检查console.log输出时,它首先显示“emitter msg - ”,然后显示“emit done”。这就是为什么我假设emitter.on代码在res.json(data)之前执行;
现在我想知道事件阻塞代码了吗?如果我必须在后台更新Feeds或在发送响应之后是什么方法?将来我也想实现缓存,所以即使添加了帖子,我也必须更新缓存,我也想在发送响应后或后台时更新缓存。