This is a playground
to test code. It runs a full Node.js
environment and already has all of npm
’s 400,000 packages pre-installed, including phantom-bluebird
with all npm
packages installed. Try it out:
require()
any package directly from npmawait
any promise instead of using callbacks (example)This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.
Core phantom modules promisified with bluebird
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.
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.
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.