2013-03-15 2 views
1

Мне нужно запустить 3 запроса url одновременно. Я думал о запуске 3 экземпляров casper, каждый из которых извлекает URL-адрес. Как простой пример, я попытался с двумя экземплярами.Запуск нескольких экземпляров casperjs

var casper=require('casper').create(); 
casper.start('http://www.google.com'); 

var casper1=require('casper').create(); 
casper1.start('http://www.google.com'); 

casper1.then(function() { 
    casper1.echo('inside'); 
}); 
casper1.echo('outside'); 

casper1.run(); 
casper.run(); 

Выход показывает только 'outside'.Why does'nt это запустить casper1.echo (' внутри ');

ответ

2

CasperJS использует стек команд, созданных всякий раз, когда вы используете одну из функций из своих api (start, then, thenOpen и т. Д.). После того, как все элементы поставлены в очередь в стеке, вы можете выполнить их в порядке, выполняя casper.run(). Если что-то не добавлено в стек, Каспер не выполнит его.

Проще говоря, casper1.echo ('outside') не выполняется, потому что он никогда не добавлялся в стек.

Их FAQ по теме более подробно останавливает его.

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