WebSocket

WebSocket始めました。

627 views

非同期で実行する

npmでインストールしなくてもchild_processは標準で入っている模様。

const exec = require('child_process').exec;

exec('python test.py', (err, stdout, stderr) => {
    console.log(stdout);
});

console.log("hello");

これは非同期で実行される。

標準出力は、コマンド終了後にまとめて取得する。
あまりにもたくさん標準出力にメッセージを出力する場合は、バッファエラーになるので、バッファサイズを変更するか、下のストリームで取得して逃がす必要がある。

標準出力をストリームで取得したい場合

const spawn = require('child_process').spawn('python', ['test.py']);

spawn.stdout.on('data', (data)=>{
    console.log("STDOUT", data.toString());
});

spawn.stderr.on('data', (data)=>{
    console.log("STDERR", data.toString());
});

spawn.on('close', (code)=>{
    console.log("CODE", code);
});

コール元のprint文ではflushを行う必要があることに注意すること。

Page 2 of 2.

前のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626