作者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/m.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