位置: 编程技术 - 正文

详解nodejs中的process进程(nodejs promise.all)

编辑:rootadmin

推荐整理分享详解nodejs中的process进程(nodejs promise.all),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs promise用法,nodejs protobuf,nodejsprocess,nodejs promise,nodejs promise,nodejs promise,nodejs prototype,nodejs protobuf,内容如对您有帮助,希望把文章链接给更多的朋友!

虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程。node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(线程)参与工作。

  进程模块

  process模块允许你获得或者修改当前node进程的设置,不想其他的模块,process是一个全局进程(node主进程),你可以直接通过process变量直接访问它。

  process实现了EventEmitter接口,exit方法会在当进程退出的时候执行。因为进程退出之后将不再执行事件循环,所有只有那些没有回调函数的代码才会被执行。在下面例子中,setTimeout里面的语句是没有办法执行到的。

  在你接触node之后,你就会发现那些影响了主事件循环的异常会把整个node进程宕掉的。这会是相当严重的问题,所以process提供了另外一个有用的事件uncaughtException来解决这个问题,他会把异常抓取出来供你处理。

  我们来看上面的例子,我们注册了uncaughtException事件来捕捉系统异常。执行到nonexistentFunc()时,因为该函数没有定义所以会抛出异常。因为javascript是解释性的语言,nonexistentFunc()方法上面的语句不会被影响到,他下面的语句不会被执行。所以他的执行结果如下:

Caught exception: ReferenceError: nonexistentFunc is not defined

This will still run.

  我们再看一个例子。

  在这里例子中我们创建了一个web服务器,当处理完请求之后,我们会执行badLoggingCall()方法。因为这个方法不存在,所以会有异常抛出。但是我们注册的uncaughtException事件会对异常做出处理,这样服务器不会受到影响得以继续运行。我们会在服务器端记录错误日志。

[ReferenceError: badLoggingCall is not defined]

  与当前进程交互

  node提供了一些process的属性,如下:

process.version:包含当前node实例的版本号;

process.installPrefix:包含安装路径;

process.platform:列举node运行的操作系统的环境,只会显示内核相关的信息,如:linux2, darwin,而不是“Redhat ES3” ,“Windows 7”,“OSX .7”等;

process.uptime():包含当前进程运行的时长(秒);

process.getgid(), process.setgid():获取或者设置group id;

process.getuid(), process.setuid():获取或者设计user id;

process.pid:获取进程id;

process.title:设置进程名称;

process.execPath:当前node进程的执行路径,如:/usr/local/bin/node;

详解nodejs中的process进程(nodejs promise.all)

process.cwd():当前工作目录;

process.memoryUsage():node进程内存的使用情况,rss代表ram的使用情况,vsize代表总内存的使用大小,包括ram和swap;

process.heapTotal,process.heapUsed:分别代表v8引擎内存分配和正在使用的大小。

  事件循环和ticker

  node中提供了process.nextTick()方法,允许你访问事件循环和延时那你的工作。他有点类似于setTimeout(),他会在下次tick的时候执行,而且每隔一段事件就会执行一次。我们这里有个例子:

  当请求来的时候,会记录日志‘http response'和‘tick',当没有请求的时候,每隔一段事件会执行事件循环,会输出tick。

  此外,nextTick创建的回调函数具有隔离性,他们之间不会相互影响。

  在这个例子中,首先输出‘End of 1st loop',然后顺序的输出nextTick的回调函数,第一个会正常输出‘tick',第二个是一个故意设置的异常会输出异常信息,不会输出‘tock',因为nextTick回调函数的隔离性,第三个任然会输出‘tick tock'。结果如下:

End of 1st looptick[ReferenceError: iAmAMistake is not defined]tick tock

  子进程

  node提供了child_process模块,允许你为主进程创建子进程,这样你就可以使用更多的服务器资源,使用更多的cpu,这些概念在前面的章节有介绍。node提供了child_process. spawn()和child_process. exec()为你实现这一功能,下面我们就单独介绍。

  child_process.exec( )

  我们来看exec的一个简单例子,他创建了一个子进程,第一个参数是一个shell命令,第二个参数是回调函数,处理返回结果。

exec()还可以传options的参数:

encoding:I/O流的编码格式;

timeout:进程超时时间;

killSignal:当时间或者缓冲区超限时终止进程的信号;

maxBuffer:stdout或stderr可增长的最大值;

setsid:决定在进程中是否创建一个新的会话;

cwd:进程的初始工作目录,为null时表示使用node的当前工作目录;

env:进程的环境变量。

  child_process.spawn( )

  child_process.spawn( )比child_process.exec( )更加强大和灵活,例子如下:

以上所述是小编给大家介绍的nodejs中的process进程,希望对大家有所帮助!

node安装--linux下的快速安装教程 前言因为要使用koa2,所以要对node进行升级。(Koarequiresnodev7.6.0orhigherforESandasyncfunctionsupport.翻译过来就是,koa需要node的版本至少为7.6,也就是说,需

Linux使用Node.js建立访问静态网页的服务实例详解 Linux使用Node.js建立访问静态网页的服务实例详解一、安装node.js运行所需要的环境,:

NodeJS学习笔记之Module的简介 Node.js模块系统Node.js有一个简单的模块加载系统。在Node.js中,文件和模块是一一对应的(每个文件被视为单独的模块)。例如,考虑下面这个名为foo.js

标签: nodejs promise.all

本文链接地址:https://www.jiuchutong.com/biancheng/377885.html 转载请保留说明!

上一篇:nodejs中使用HTTP分块响应和定时器示例代码

下一篇:node安装--linux下的快速安装教程(linux安装node安装包)

  • 出口免税收入会退税吗
  • 拆迁补偿款如何做账务处理
  • 增值税如何进行税收筹划
  • 增值税专票和普票的区别税率
  • 报税是怎么操作的
  • 有谁用过金蝶kis云专业版
  • 餐饮业购买的油类有哪些
  • 取得社会团体会费专用票据可以税前扣除吗
  • 企业年报社保都是0人的公司
  • 有什么法规依据法律规定
  • 工商年检股东变更流程
  • 企业破产时下列受偿等级最高的是
  • 商业零售企业实行增值税后购进商品业务的账务处理
  • 纳税人提供应税服务的价格明显偏低
  • 企业所得税政策最新2023税率
  • 资金账簿怎么交
  • 转出未交增值税怎么算
  • 软件企业增值税即征即退会计处理
  • 中方人员取得的工资、薪金所得,征收个人所得税有特别规定吗?
  • 如何冲销账面上的资金
  • 收到未到期的银行承兑汇票会计分录
  • 小规模纳税人领发票要带什么
  • 按年缴纳年金的企业缴费部分,应按照全年一次性奖金
  • ipad常用语在哪里
  • 自然人独资属于什么经济性质
  • 初级会计实务的心得体会
  • opencart 二次开发
  • macos big sur 怎么样
  • schedulerv2.exe - schedulerv2是什么进程 有什么用
  • php数组函数大全
  • 前端大屏适配几寸显示器
  • 工业总产值 工业销售产值
  • 哪些项目容易漏缴个人所得税?
  • js如何实现异步编程
  • 马卡雷纳大教堂
  • 出口退税无纸化备案怎么弄
  • 账面价值大于计税基础为啥为递延所得税负债
  • 新建厂房的费用由谁承担
  • 会计调整以前年度遗留问题查不出来说明怎么写
  • 预付账款借方怎么调平
  • 进项税额转出可以为负数吗
  • 财务报表逾期了两个月有罚款吗
  • 员工工资计提
  • 银行账户维护费怎么做账
  • 固定资产融资租赁是什么意思
  • 安装配置mysql,检验是否正常安装
  • 存货成本费用
  • mysql Non-Transactional Database Only(只支持MyISAM)
  • 企业接受捐赠增值税处理
  • 小规模纳税人自行开具增值税专用发票税率
  • 销项税怎么做账
  • 开发票,对方收取税点,如何计算?
  • 结转制造费用用红字还是蓝字写
  • 红冲去年的成本怎么做账
  • 合作研究开发项目的合同
  • 土地增值税税率怎么算
  • 租来设备本身原因致人损害
  • 先付款后开票还是先开票后付款
  • 远程认证软件可以卸载吗
  • MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误
  • system is boot up with
  • “incorrect super block” FreeBSD挂载CDROM时报错误的解决方法
  • 如何设置windows启动密码
  • win7更新和安全在哪里
  • win7计算机快捷方式不见了
  • win8.1死机卡住不动
  • windows8怎么设置
  • win10系统怎么设置电脑密码
  • win7系统怎么关闭屏幕保护
  • win7一开机就弹窗
  • linux计划任务执行脚本
  • python爬虫入门教程
  • 浅谈特殊儿童的融合教育论文
  • python 读取数据库
  • vue中使用ajax
  • 使用JQuery选择HTML遍历函数的方法
  • unity3d documentation
  • JavaScript的函数定义
  • 电话费的税费计入什么科目
  • 广东发票开票软件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设