作者youtuuube000 (小孩)
看板Ajax
标题[问题] Node.js child.on("end")范例的Done印不出来
时间Fri Nov 4 18:25:29 2016
各位好
我在跑书上的范例
var child_process = require("child_process");
var ls = child_process.spawn("ls",["-l"]);
ls.stdout.on("data",function(data)
{
console.log(data);
});
ls.on("end",function(code)
{
console.log("Done");
});
当程式跑完後他却一直没办法印出Done这个字
想请问是出了什麽问题呢?
用ls -l在command line下跑结果跟这程式的结果一模一样
但照理来说跑完後他应该要印出Done才对却没有印出来
先谢谢回答了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.249.56
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1478255132.A.EFD.html
※ youtuuube000:转录至看板 Web_Design 11/04 18:25
※ 编辑: youtuuube000 (140.112.249.56), 11/04/2016 18:28:42
1F:→ djshen: 确定有end event? 11/04 20:03
我不太确定有没有end event
因为第一次接触还在学
但书上说当所有档案印出来後
ls程式将会结束
然後我们会收到end事件,所以会印一行Done的字串
只是我实际跑的结果似乎没有end事件的样子
我在想可能跟spawm的用法有关 只是不知道原因出在哪@@
※ 编辑: youtuuube000 (140.112.249.56), 11/04/2016 20:12:05
想请问一下end事件出现的条件是什麽呢?
谢谢回答了!!!!!
※ 编辑: youtuuube000 (140.112.249.56), 11/04/2016 20:13:29
2F:推 Hevak: 应该是书上写错?我看了一下NodeJS的文件,child_process的 11/05 02:18
3F:→ Hevak: event里面没有end,比较接近的应该是exit 11/05 02:18
5F:→ Hevak: 所以你 ls.on('exit' //下略,就能看到你想看到的done 11/05 02:19
6F:推 TETZ: 我看了一下我写过的是用'close'应该也可以 11/06 00:53
知道了谢谢各位回答!!!
※ 编辑: youtuuube000 (140.112.249.56), 11/07/2016 07:19:00