0

我有我正在处理的这段代码。为了提供上下文,我使用事件源来流式传输服务器发送的事件。收到数据/响应后,我想将其传递到我的模板(车把)视图中。下面的代码是一个 GET 请求,我试图在其中显示从 SSEvents.addEventListener 返回的数据。

method: 'GET',
path: '/students',
config: {
handler: (request, reply) => {
  SSEvents.addEventListener('score', function(e) {
    const data = JSON.parse(e.data);
    }, false);
      reply.view('students', {result: data});
   },
    description: "Endpoint lists all users that have received at least one test score.",
    tags: ['api']
   }
 }

此代码的问题是常量“数据”在事件侦听器范围之外不可用。我需要找到一种方法来公开常量,以便我可以在 reply.view('students', {result: data}); 中使用它

注意:我尝试添加“reply.view('students', {result: data});” 在事件侦听器中,它会引发以下错误:回复接口调用了两次。

任何帮助,将不胜感激。

- 谢谢!

4

1 回答 1

0

它应该像这样工作。您的事件源需要多长时间才能产生答案?你有两次调用reply方法吗?这只是一个电话。

handler: (request, reply) => {
        SSEvents.addEventListener('score', function(e) {
            const data = JSON.parse(e.data);
            return reply.view('students', {
                result: data
            });
        }, false);
    },
    description: "Endpoint lists all users that have received at least one test score.",
    tags: ['api']
}
于 2017-12-04T21:40:00.020 回答