Skip to content

Instantly share code, notes, and snippets.

@joakin
Created January 9, 2018 11:30
Show Gist options
  • Save joakin/600574ca21be9c0ed9b0af8b4dbb3eb3 to your computer and use it in GitHub Desktop.
Save joakin/600574ca21be9c0ed9b0af8b4dbb3eb3 to your computer and use it in GitHub Desktop.
Async functions example
const puppeteer = require("puppeteer"); // v0.13.0
const URL = "https://en.wikipedia.org/api/rest_v1/page/html/Maybeshewill";
goToPageAndClose(URL).catch(error => console.log("Error: ", error));
async function goToPageAndClose(url) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
console.log(`page#goto(${URL})`);
const navigation = page.goto(URL, {
timeout: 5000,
waitUntil: "networkidle2"
});
// Defer closing the page so that navigation can start.
await nextTick();
console.log("page#close()");
await page.close();
console.log("browser#close()");
// Close the browser so that the Node.js process can
// exit.
browser.close();
return navigation;
}
function nextTick() {
return new Promise(res => process.nextTick(res));
}
const puppeteer = require('puppeteer') // v0.13.0
const URL = 'https://en.wikipedia.org/api/rest_v1/page/html/Maybeshewill'
function gotoAndClose(browser) {
browser.newPage()
.then((page) => {
console.log(`page#goto(${URL})`)
// Defer closing the page so that navigation can start.
process.nextTick(() => {
console.log('page#close()')
page.close()
.then(() => {
console.log('browser#close()')
// Close the browser so that the Node.js process can
// exit.
browser.close()
})
})
return page.goto(URL, {
timeout: 5000,
waitUntil: 'networkidle2'
})
})
.catch((error) => console.log('Error: ', error))
}
puppeteer.launch()
.then(gotoAndClose)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment