Node.js 在后台使用Angular8从NodeJSRESTAPI获取消息通知

Node.js 在后台使用Angular8从NodeJSRESTAPI获取消息通知,node.js,angular,web-worker,angular8,Node.js,Angular,Web Worker,Angular8,我正在开发一个应用程序,希望在其中实现邮件收件箱。我已经使用Angular8和NodeJSRESTAPI创建了消息收件箱。现在,我想在用户登录时每隔30秒在后台收到收件箱中的消息,但这也不想影响Angular应用程序的性能 因此,我想用Angular8实现Web worker,以从NodeJSRESTAPI获取数据,但我无法创建 我在Angular 8应用程序中添加了以下代码 将此代码添加到app.component.ts getWorker(token){ if (typeof Worker

我正在开发一个应用程序,希望在其中实现邮件收件箱。我已经使用Angular8和NodeJSRESTAPI创建了消息收件箱。现在,我想在用户登录时每隔30秒在后台收到收件箱中的消息,但这也不想影响Angular应用程序的性能

因此,我想用Angular8实现Web worker,以从NodeJSRESTAPI获取数据,但我无法创建

我在Angular 8应用程序中添加了以下代码

将此代码添加到app.component.ts

getWorker(token){
if (typeof Worker !== 'undefined') {
  // Create a new
  const worker = new Worker('../../web-worker/messenger.worker', { type: `module` });
  worker.postMessage(token);
  worker.onmessage = (e) => {
    setTimeout(() => {
      worker.postMessage(token)
    }, 15000);
  };
} else {
  // Web Workers are not supported in this environment.
  // You should add a fallback so that your program still executes correctly.
}
}

使用获取创建工作文件

  /// <reference lib="webworker" />

addEventListener('message', ({ data }) => {
    const response = `worker response to ${data}`;
    postMessage(response);
  });

import { environment } from "src/environments/environment";
onmessage = (message:any) => {
    fetch(environment.apiUrl +'messages/notification/1/1',
        { method:'GET',
          headers:new Headers({
            Authorization: `Bearer ${message.data}`
          })
        }
      )
    .then(response => {
      return response.json()
    })
    .then(commits => {
        // self.onmessage(message)
      return commits
    });
};
//
addEventListener('消息',({data})=>{
const response=`worker对${data}的响应`;
后消息(响应);
});
从“src/environments/environment”导入{environment};
onmessage=(消息:任意)=>{
获取(environment.apirl+'messages/notification/1/1',
{方法:'GET',
标题:新标题({
授权:`Bearer${message.data}`
})
}
)
。然后(响应=>{
返回response.json()
})
。然后(提交=>{
//self.onmessage(消息)
返回提交
});
};
但是它显示了类型,因为fetch应该显示为webworker,对吗

有人能帮我吗


您好,您是否尝试过使用setTimeout每隔30秒调用函数获取消息,如果是,您的性能是否受到严重影响?否,我没有尝试使用fetch。我在尝试使用HttpClient。我将尝试使用fetch并返回给您。使用Angular 8的web worker找不到文件时,我面临错误。我必须在配置文件中进行任何更改吗?@HardRocker请检查我是否已更新问题