首页
学习
活动
专区
圈层
工具
发布

角2网工
EN

Stack Overflow用户
提问于 2016-10-08 07:14:59
回答 1查看 3.2K关注 0票数 7

我所能找到的关于角锥2中的weborker的所有文章和指南都专注于使整个应用程序在weborker中运行。是否有可能仅仅创建一个使用webworkers的服务?

举一个典型的网络工作者的例子,有人能告诉我如何创建一个服务,使用webworkers来计算这个数字的阶乘吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-23 23:15:30

新版

基于您可以找到这里的解决方案,我构建了一个使用WebWorker来完成任务的简单类。

你需要3个文件才能有一个工作的工人。

  1. file-loader.d.ts -需要加载WebWorker文件 声明模块“文件加载器?name=name.js!*”{ const值: string;export = value;}
  2. background-worker.ts -类在应用程序中是可维护的 从"file-loader?name=name.js!./web-worker-example";类导入*作为workerPath从BackgroundWorker {构造函数{让工作者=新工作人员(WorkerPath);worker.onmessage = this.handleMessage;worker.postMessage('Caller:帮助我了解背景工作‘);//消息内容只能包含Javascript对象/用于文档: // https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage // }私有handleMessage(此处: Worker,message: MessageEvent ){ console.log( message.data );switch( message.data ){ case 'Worker: Worker: // .有事要做..。打破;案例‘工人:好的,我会做’:// .有事要做..。休息;案例‘工人:不,我不能’:// .有事要做..。断裂;大小写‘工作者:已完成’:this.terminate();断开;}}
  3. web-worker-example.ts // ****************************************************************** Worker Bridge // self是关键字:对该工作人员self.onmessage =桥的引用;函数桥(消息: MessageEvent ){ HandleWork( message.data );CallBack(“完成”);// use: // self.close();//如果您需要从worker环境中终止Worker。}函数CallBack(消息:字符串){ self.postMessage('Worker:‘+ message,未定义);} // ****************************************************************** Worker Body function HandleWork( workTask: string ){ if( workTask == 'Caller:帮助我进行后台工作‘){ CallBack('Ok,我会做’);DoVeryComplexWork();返回;}CallBack(‘不,我不能’);}函数DoVeryComplexWork() { // .例如: for(让我: number = 0;i< 1000000000;i++ ){ if( i% 100000000 == 0){ CallBack('Working');}}

要启动Worker,只需实例化worker new BackgroundWorker()并查看控制台。

旧版

我也遇到了同样的问题,并通过构建一个扩展WebWorker类的服务来解决这个问题。在实践中,服务通过向WebWorker传递两样东西,数据和一个详细说明数据的函数来工作。

我在GitHub上发布了一个例子。所有所需的逻辑都在以下两个文件中。

fibonacci-worker.service.ts

worker.ts

看看调用方法的app.component.ts

致以问候。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39929776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档