Я пытаюсь написать синхронный код в Node.js.
function func1(fn) {
const puppeteer = require('puppeteer');
var If = require('If');
var async = require("async");
(async () => {
const browser = await puppeteer.launch({
headless: false
});
const page = await browser.newPage();
// Open page.
await page.goto("https://www.google.com/");
})();
fn();
}
func1(function(){
console.log('world');
});
Сначала я хочу, чтобы страница Google открывалась, и когда я ее закрываю, программа должна печатать: world
.
Вы можете сделать func1
асинхронным, а затем вы можете await
свою внутреннюю анонимную асинхронную функцию:
async function func1 (fn) {
const puppeteer = require('puppeteer');
var If = require('If');
var async = require('async');
await (async () => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto('https://www.google.com/');
})();
fn();
}
func1(function () {
console.log('world');
});
Вызовите fn
в fn
вызове для отключенного события Puppeteer.
Код ниже работает отлично для меня:
function func1(fn) {
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: false
});
const page = await browser.newPage();
// Open page.
await page.goto("https://www.google.com/");
browser.on('disconnected', () => {
fn();
});
})();
}
func1(function(){
console.log('world');
});