WebSocket

WebSocket始めました。

788 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。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

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

ツイッター

@darkimpact0626