Evaluar en PhantomJS no parece funcionar

Tengo un problema con la magia de JavaScript. Cuando ejecuto este código:

var page = require('webpage').create();
var url="http://google.com";
page.open(url, function (status){
  if (status!== "success") {
    console.log("Fail to load: "+url)
  }else{
    console.log('1');
    page.evaluate(function() {
      console.log('2');
      });   
    console.log('3');
  }
phantom.exit();
});

la consola tiene solo 1 y 3 y no 2. ¿Alguien puede decir por qué?

Si pego después de mi códigoEjemplo de manipulación de DOM (pero nunca lo ejecuto) tengo mis dos. ¿Olvidé algo importante?

Respuestas a la pregunta(3)

Su respuesta a la pregunta