专栏首页flytam之深入前端技术栈nodejs几种创建子进程的区别

nodejs几种创建子进程的区别

spawn()

启动一个子进程来执行命令。进程类型任意

const { spawn } = require('child_process');
const ls = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

ls.stderr.on('data', (data) => {
  console.log(`stderr: ${data}`);
});

ls.on('close', (code) => {
  console.log(`子进程退出码:${code}`);
});

exec()

启动一个子进程来执行命令,但可以有一个回调函数获取子进程的一些情况。可以设置超时时间。进程类型任意

// 就像平时使用命令行那样
const { exec } = require('child_process');
exec('cat *.js bad_file | wc -l', (error, stdout, stderr) => {
  if (error) {
    console.error(`exec error: ${error}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
  console.log(`stderr: ${stderr}`);
});

execFile()

启动一个子进程来执行可执行文件,可以设置超时时间,进程类型任意

const { execFile } = require('child_process');
const child = execFile('node', ['--version'], (error, stdout, stderr) => {
  if (error) {
    throw error;
  }
  console.log(stdout);
});

fork()

直接fork js文件。进程类型node

node文档的一些说明

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • leetcode 177场周赛题解

    思路:这个题虽然说是二叉树,不过和常规的二叉树题没啥关系,通过观察题目给上的不符合条件的输入样例的二叉树可以知道有3种情况不符合 1、一个节点被多于2个的节点...

    flytam
  • Go处理字符串到合法文件名

    flytam
  • leetcode 15 3sum

    leetcode 15,大概就是给一个若干整数组成的数组,求出其中3个的和为0的组数。

    flytam
  • 你知道 JavaScript 中的错误对象有哪些类型吗?

    每当 JavaScript 中发生任何运行时错误时,都会引发Error对象。 在许多情况下,我们还可以扩展这些标准Error对象,以创建我们自己的自定义Erro...

    前端小智@大迁世界
  • JavaScript提升(你不知道的JavaScript)

    最近,在读《你不知道的JavaScript(上卷)》这本书,书中详细阐述了JavaScript众多重要但经常被大家忽略的点,在此强烈推荐!!!书中,第4章讲述...

    奋飛
  • C# 多线程锁之ReaderWriterLockSlim

    .NET 3.5 开始 ReaderWriterLockSlim登上舞台,ReaderWriterLockSlim 可以看做是 ReaderWriterLock...

    郑小超.
  • 数组的一些方法

    天天_哥
  • 来自mooon的最简单的日志类CSimpleLogger

     * 单个头文件,可即时独立使用,只要定义了宏NOT_WITH_MOOON,即不依赖于mooon

    一见
  • 【Rust日报】 2020-02-27 crates.io 事件报告

    UTC 时间 2020 年 2 月 20 日 21:28,我们收到了来自 crates.io 用户的报告,即使自上传 10 分钟后,索引中的仓库仍不可用。这是由...

    MikeLoveRust
  • Scrapy之日志文件的产生

    我们写爬虫的时候,也许会需要记录一些数据或者异常信息,通常这些数据我们会希望以日志的形式保存下来。

    钱塘小甲子

扫码关注云+社区

领取腾讯云代金券