角度服务和网络工作者

时间:2020-10-26 20:35:03

标签: angular angular-services web-worker

我有一项服务正在Angular应用中用于大量计算。我正在将@injectable与服务类一起使用。我也想在网络工作者中使用该类,但是它引发了dom相关的错误。重用服务代码的最佳方法是什么?我可以编写一个普通的类,但希望避免重复编写代码,因为应用程序中仍然需要它。

我想做这样的事情:

// web worker
import {Service} from 'app.service.ts';

addEventListener('message', ({ data }) => {
  const response = new Service().callServiceMethod(data);
  postMessage(response);
});

1 个答案:

答案 0 :(得分:0)

可能有比这更好的答案,因为这是一种解决方法,但需要最少的维护,并且功能保留在代码中:

我正在使用非dom类和angular类

..............
class NonDom {

exampleMethod() {
// do stuff
 }
}
.............

import NonDom from './NonDom';

class AngularWithDom {
const nonDomClass = new NonDom();

exampleMethod() {
 return nonDomClass.exampleMethod();
 }

domMethod() {
 // do stuff with dom here 
 }
}