2016-01-08 2 views
0

Я пытаюсь вызвать функцию из page.open в моем скрипте, но когда я запускаю это, я не получаю вывод в console и никаких ошибок. Я отлаживал это с давних пор, но не получил никакого решения. Код ниже:setTimeout не достигнут на странице.open в PhantomJS

var page = require('webpage').create(); 
var url = 'https://www.youtube.com/user/jannunzi/about'; 

page.open(url, function (status) { 

    setTimeout(function(){ 
     nextpage(); 
     console.log("inside timeout....."); 
    },5000); 

    phantom.exit(); 
}); 

function nextpage(){ 
    console.log("huzefa..........................."); 
} 

Здесь ни одно из обоих консольных сообщений не печатается на консоли.

ответ

1

Как это могло произойти, когда вы немедленно выход PhantomJS (phantom.exit();)? JavaScript setTimeout() является асинхронным, поэтому операторы, которые появляются после этого, вычисляются до вызова обратного вызова. Вы должны переместить выход в обратный вызов для setTimeout().

+0

thnx, спас мою жизнь :) –

+2

И мне даже не пришлось изучать медицину для этого. Какое достижение: P –

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