0.0.2 • Published 9 years ago
phantom-bluebird v0.0.2
phantom-bluebird
Core phantom modules promisified with bluebird
Usage
npm install phantom-bluebird --save
It is NOT a node module.
This module can be used in phantomjs scripts to use promise api instead of non-standard callback api of phantomjs modules.
webpage module
Same as phantomjs webpage module, but method open
is promisified.
require('phantom-bluebird')();
// replaces webpage and child_process with modules from this package.
// don't call this function if you don't want core modules replaced.
var webpage = require('webpage');
// or var webpage = require('phantom-bluebird/lib/webpage');
// or var webpage = require('phantom-bluebird').webpage;
var page = webpage.create();
page.open('http://example.com')
.then(function (status) {
console.log('Page title:', page.title);
})
.catch(function (err) {
console.log('Can\'t open page');
})
.finally(function() {
phantom.exit();
});
Only open method of page object is promisified at the moment.
child_process module
Same as phantom child_process module, but methods are promisified.
spawn
method supports additional options (see example below).
require('phantom-bluebird')();
var spawn = require('child_process').spawn;
// or var spawn = require('phantom-bluebird/lib/child_process').spawn;
spawn('node', ['--harmony', 'app'], {
log: true,
// with this option child process stdout and stderr are logged to console
startedLog: 'started'
// promise will resolve when child process logs string containing "started"
// without 'startedLog' option, promise will resolve immediately
})
.bind({})
.then(function (child) {
console.log('app started');
this.app = child;
})
.then(function () {
// ... do something, e.g. open page
})
.finally(function () {
this.app.kill();
phantom.exit();
});
TODO: example for execFile
method.