2016-04-20 3 views
0

Ich installierte PhantomJs mit Npm global. Warum funktioniert dieser Code nicht?PhantomJs: Spawn öffnet keine App

var page = require('webpage').create(); 
 
var spawn = require('child_process').spawn; 
 

 
page.open('http://google.com', function(status){ 
 
    if(status == 'success') { 
 
    page.render('/tmp/google-snapshot.jpg'); 
 
    spawn('/usr/bin/sensible-browser', 'file:///tmp/google-snapshot.jpg'); 
 
    phantom.exit(); 
 
    } 
 
})

Im Linux Mint mit. Typing-Befehl /usr/bin/sensible-browser file:///example.png im Terminal funktioniert gut, aber warum das Skript nicht funktioniert.?

+0

Wie Sie dieses Skript ausführen? – Vaviloff

+0

Es stellt sich heraus, dass phantom.exit() aufgerufen wird, bevor spawn() abgeschlossen werden kann. – Kumar

Antwort

1

Es stellt sich heraus, phantom.exit() wurde aufgerufen, bevor spawn() abgeschlossen werden kann. Unterhalb des Codes wurde das Problem behoben.

var page = require('webpage').create(); 
var spawn = require('child_process').spawn; 

page.open('http://google.com', function(status){ 
    if(status == 'success') { 
    page.render('/tmp/google-snapshot.jpg'); 
    spawn('/usr/bin/sensible-browser', 'file:///tmp/google-snapshot.jpg'); 
    } 
    setTimeout(function(){ 
    phantom.exit(); 
    },2000); 
}); 

Referenz: https://github.com/ariya/phantomjs/pull/14220