2012-06-24 1 views
3

Я хочу запускать сценарии PhantomJs из своей программы, но поскольку сценарии могут быть не написаны мной, мне нужно убедиться, что PhantomJs завершает выполнение или завершается по какой-либо причине (например, , недействительный синтаксис, таймаут и т. д.). Пока что все, что я читал, должно всегда включать инструкцию phantom.exit() для выхода PhantomJs. Есть ли способ автоматически закрыть 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. Ошибка выполнения сценария (например, он не существует), и в этом случае улов оговорка распечатывает StackTrace и phantom.exit() вызывается в пункте в конце концов.

 Смежные вопросы

  • Нет связанных вопросов^_^