Javascript 如何立即侦听服务器(express)从客户端(vue)发送的事件

Javascript 如何立即侦听服务器(express)从客户端(vue)发送的事件,javascript,node.js,vue.js,Javascript,Node.js,Vue.js,我正在尝试侦听来自vue js客户端的Express server发送的事件。它一发出我就想听。但直到整个过程结束,它才开始 我的Express控制器代码是: exports.getFruits = (req, res, next) => { const fruits = ["mango", "jackfruit", "banana", ...........]; for(let i = 0; i < fruits.length; i++){ res.emit

我正在尝试侦听来自vue js客户端的Express server发送的事件。它一发出我就想听。但直到整个过程结束,它才开始

我的Express控制器代码是:

exports.getFruits = (req, res, next) => {
   const fruits = ["mango", "jackfruit", "banana", ...........];
   for(let i = 0; i < fruits.length; i++){
      res.emit('fruit', fruits[i]);
   }
};

我怎样才能收听这里发送的服务器?非常感谢您的帮助。

这是node.js的预期行为任何同步循环都将始终阻止线程,并且在循环完成后,它将处理其他事件

有关更多信息,请参考以下要点:

共有5个阶段

┌───────────────────────────┐
┌─>│           计时器│
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │     挂起的回调│
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │       空闲,准备│
│  └─────────────┬─────────────┘      ┌───────────────┐
│  ┌─────────────┴─────────────┐      │   进来的:│

│ │ 投票│您可以使用我推荐的任何web套接字库@Sam,我已经尝试过使用websocket。似乎仍在等待整个过程的完成。也许你能给我举个例子。
axios.get("localhost:3000/get-fruits")
.then(res => {
   console.log(res.data);
})
.catch(err => {
   console.log(err);
});
   ┌───────────────────────────┐
┌─>│           timers          │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │     pending callbacks     │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │       idle, prepare       │
│  └─────────────┬─────────────┘      ┌───────────────┐
│  ┌─────────────┴─────────────┐      │   incoming:   │
│  │           poll            │<─────┤  connections, │
│  └─────────────┬─────────────┘      │   data, etc.  │
│  ┌─────────────┴─────────────┐      └───────────────┘
│  │           check           │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
└──┤      close callbacks      │
   └───────────────────────────┘