当前位置: 首页 > news >正文

沈阳网站 房小二杭州企业网站设计模板

沈阳网站 房小二,杭州企业网站设计模板,wordpress 视频列表,德州谁会做网站简介 这是基于 node.js 中的子进程的概念推出来的,可参考链接:utilityProcess | Electron 官网有一句话非常重要,它提供一个相当于 Node.js 的 child_process.fork API,但使用 Chromium 的 Services API 代替来执行子进程。这句话…

简介

  1. 这是基于 node.js 中的子进程的概念推出来的,可参考链接:utilityProcess | Electron 官网有一句话非常重要,它提供一个相当于 Node.js 的 child_process.fork API,但使用 Chromium 的 Services API 代替来执行子进程。这句话的意思是两者还是有点区别的。更应该当成一个 worker.js 来看到。

  2. 这个工具进程自从 electron:22.0.0 才开始有,老版本是没有的哦!Electron 22.0.0 - 知乎

特点

utilityProcess 是一个轻量级的进程,在开发过程中有些逻辑是针对数据进行判断和处理,所以没有必要创建一个渲染进程,渲染进程会模拟整个浏览器,会耗费很多 cpu 和内存,但是我们却用不到,这时轻量级的工具进程就起到了很大的作用了,例如做一个全局任务调度程序。

难点

主子进程最重要的环节就是两者的通信,官方给了主子通信的方式,同时还给了 MessageChannelMain(Electron 通信桥)的方式,这两种方式基本解决了我们所有问题;

完整代码

main.js

import {utiltyProcess, MessageChannelMain} from 'electron'
const {port1, port2} = new MessageChannelMain()
const child = utilityProcess.fork(path.join(__static, "alarm1.js"))
child.on("spawn", () => {child.postMessage({message: 'hello'}, [port1])
})port2.on("message", (e) => {console.log("port receive:", e.data);port2.postMessage("I receive your messages:")
})
port2.start()
child.on("message", (e) => {console.log("接收到消息了:", e);
})

utility-process.js

console.log('Listening for messages...');
process.parentPort.on('message', (e) => {const port = e.ports[0];process.parentPort.postMessage({data: "Ready"});console.log("I m coming,do you find me?")port.on("message", (e) => {console.info("why not print it?", e.data)setTimeout(() => {port.postMessage(`I receive your message:${e.data}`)}, 2000)});port.start();port.postMessage({data: "Ready"});
});

注意

  1. utility-process.js 中的 console.log 有时候不能在控制台打印出来,我删掉 node_modules 重新安装,并且全部改为英文之后(没事不要用中文,外国人搞得东西用中文都是坑),又能输出来了,这个有人提过,是个老问题,这里记下来,好像他们也没处理,就放在那里了 [Bug]: output sometimes missing in utility process · Issue #36411 · electron/electron · GitHub

  2. console.info("why not print it?", e.data) 这里没有打印出来,不代表这里没有收到 message,实际上是收到了,setTimeout 那里是可以执行的,很多人被坑,以为这里没办法通信,因为 console.log 没打印出来,以为代码没走到这里

  3. port.start() 这行代码一定要有,最好放在 onmessage 之后,electron 开发者的意思,如果默认开启就会丢失一些消息,只有当你确保 onmessage 配置好了后,再开启消息队列,html5 MessageChannel 中的 port 没有 start 函数这是最大的区别。

http://www.yayakq.cn/news/35055/

相关文章:

  • 网站开发智能化方向flash型的著名网站
  • 网站系统中备案申请表深圳pc端网站开发
  • 品牌微信网站建设自己做的网站外国人能访问吗
  • 企业营销型网站建设哪家好网络营销策划的内容
  • 台州自助建站系统WordPress自定义前端登录
  • 做任务赚佣金网站有哪些学动漫有什么出路
  • 国外可以做推广的网站吗自建网站网址
  • wordpress前端投稿插件郑州专业网站推广优化公司
  • 烟台商城网站建设app平台网站搭建
  • 丹徒网站建设咨询前端工程师是做网站吗
  • 蒲公英路由做网站郑州网站建设创新网络
  • 广东省做农业网站公司深圳平台网站建设
  • 哈尔滨公众号制作seo设计师品牌
  • 沈阳网站建设活动方案网建平台
  • 要给公司做一个网站怎么做上海外贸商品交易会
  • 南京网络建站模板进口手表网站
  • 山东川畅科技做网站多少钱jquery 打开新网站
  • 网站开发流程中有哪几个阶段分类目录不要前缀wordpress
  • 宣威市住房和城乡建设局网站下载中心东莞 网站建设
  • 云南网站建设效果好吗佛山营销型网页设计
  • 做企业网站设计手机站扬州网站制作
  • 建设网站实训心得辞职做美食网站
  • 自助建站免费平台wordpress仿微信公众号
  • 做商品网站的教学视频教程成品软件源码网站
  • 公司网站没备案海口专业做网站
  • 巢湖市网站建设推广大庆建设网站
  • 帮人做网站 怎么收费网站首页图片大全
  • 重庆网站备案规定怎么建立官网
  • 手机app定制开发关键词优化公司推荐
  • 昆明做网站公司有哪些好用的网站开发编辑器