Node.js 在后台使用Angular8从NodeJSRESTAPI获取消息通知
我正在开发一个应用程序,希望在其中实现邮件收件箱。我已经使用Angular8和NodeJSRESTAPI创建了消息收件箱。现在,我想在用户登录时每隔30秒在后台收到收件箱中的消息,但这也不想影响Angular应用程序的性能 因此,我想用Angular8实现Web worker,以从NodeJSRESTAPI获取数据,但我无法创建 我在Angular 8应用程序中添加了以下代码 将此代码添加到app.component.tsNode.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
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请检查我是否已更新问题