2012-06-24 417 views
3

我想從我的程序運行PhantomJs腳本,但由於腳本可能不是由我編寫的,我需要確保PhantomJs在執行完成或因任何原因失敗後退出(例如,語法無效,超時等)。到目前爲止,我讀過的所有內容都表明,必須始終包含PhantomJs的指令phantom.exit()才能退出。執行給定腳本後,有沒有辦法自動關閉PhantomJs?運行腳本後自動關閉PhantomJs

謝謝。

回答

2

創建文件運行javascript.js

var system = require('system'); 

try { 
    for (var i=1; i<system.args.length; i++) { 
    var scriptFileName = system.args[i]; 
    console.log("Running " + scriptFileName + " ..."); 
    require(scriptFileName); 
    } 
} 
catch(error) { 
    console.log(error); 
    console.log(error.stack); 
} 
finally { 
    phantom.exit(); 
} 

然後運行文件myscript.js

phantomjs run-javascript.js ./myscript.js 

你必須包括對的顯式路徑myscript.js,即./myscript.js,否則phantomjs將作爲模塊查找腳本。

但是也有一些在這裏處理三個執行方案:

  1. 成功執行,在這種情況下phantom.exit()被稱爲終於子句。
  2. 腳本運行錯誤,在這種情況下,要求函數打印堆棧跟蹤並返回(不會向調用代碼拋出任何錯誤)。
  3. 錯誤運行腳本(例如,它不存在),在這種情況下,捕獲子句打印出棧跟蹤和phantom.exit()稱爲終於子句。