js的server worker创建子进程
2023-09-14 08:58:45 时间
类似nodejs的 child_process.fork()
// index.html 主线程
function isClose(data){
if(data === 0)
return true;
}
var myWorker = new Worker("worker.js");
myWorker.addEventListener('error',err=>{
console.log( err);
}, false);
myWorker.addEventListener('message',msg=>{
// 监听子线程发来的 数据
console.log( msg.data);
if( isClose(msg.data) ){
// 干掉子进程
myWorker.terminate();
}
}, false);
setTimeout(function(){
// 发更子进程的数据
myWorker.postMessage('frok')
}, 2000);
// worker.js 子线程
// 加载 fn.js 文件
importScripts('fn.js');
console.log(123);
// 向主线程发送 data
postMessage('over 123');
// 接收主线程发来的的数据
onmessage = (e)=>{
check(e.data);
console.log( e.data);
}
// fn.js
function check(data){
console.log( data.constructor.name );
}
动态创建server.js文件
const workerJSString = `
// 接收主线程发来的的数据
onmessage = ({data})=>{
// 向主线程发送data
console.log(\`接收到主线程发来的数据: \${data}\`);
postMessage(data ** 2);
}
`;
const workerBlob = new Blob([workerJSString], {
type: "text/javascript"
});
const url = URL.createObjectURL(workerBlob);
const myWorker = new Worker(url);
// 监听子线程发来的 数据
myWorker.addEventListener("message", ({ data }) => {
console.log(data); // 9
});
setTimeout(function () {
// 向子进程的数据
myWorker.postMessage(3);
}, 2000);
相关文章
- js书写原生ajax,JS 原生ajax写法
- 使用 Dapr JS SDK 让 Nest.js 集成 Dapr(微软开源的分布式应用程序运行时)
- JS面试题-js新增基本数据类型BigInt
- js定时器与延时器_JS做定时器倒计时
- js中四舍五入的方法_JS取整
- 高中物理学运动公式实现js动画
- jquery验证插件对表格数据的验_js与jquery的区别
- js-HTML DOM EventListener
- js分类刷leetcode动态规划
- JS手撕(六) trim、模板字符串、千分位分隔符
- JS设计模式 - 笔记
- JS设置页面按钮为可用和不可用状态详解编程语言
- sql server比较Oracle 与 SQL Server的优缺点(oracleltgt)
- 用SQL Server和JS实现数据库管理技术(sqlserver.js)
- 使用JS在网页中连接Oracle数据库(js网页链接oracle)
- 数据JS技术实现实时获取Oracle数据(js实时获取oracle)
- Oracle中JS的优势让数据库性能提升(oracle中 js)
- 用js重建星际争霸
- 非常不错的关于IE与FireFox的js和css几处不同点[转自星火燎原]
- 不会死机的js格式代码
- aspx中利用js实现确认删除代码
- js对象之JS入门之Array对象操作小结
- js将iframe中控件的值传到主页面控件中的实现方法
- JS获取字符串型数组下标的数组长度的代码
- js实现ArrayList功能附实例代码