看板 Ajax 關於我們 聯絡資訊
各位好 我在跑書上的範例 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://www.ptt.cc/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
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
Hevak: 應該是書上寫錯?我看了一下NodeJS的文件,child_process的 11/05 02:18
Hevak: event裡面沒有end,比較接近的應該是exit 11/05 02:18
Hevak: 所以你 ls.on('exit' //下略,就能看到你想看到的done 11/05 02:19
TETZ: 我看了一下我寫過的是用'close'應該也可以 11/06 00:53
知道了謝謝各位回答!!! ※ 編輯: youtuuube000 (140.112.249.56), 11/07/2016 07:19:00