Я попробовал вашу первую версию вашего кода, т.е.
let bro;
puppeteer.launch()
.then(res => bro = res);
, и он работает, ТОЛЬКО после использования ключевого слова await
вроде
let bro;
await puppeteer.launch()
.then(res => bro = res);
Вот как работает мой код
async function run(){
let bro;
await puppeteer.launch()
.then(res => bro = res);
const page = await bro.newPage();
await page.goto('https://github.com/login');
await bro.close();
}
run();
Другая версия того же кода
let bro;
await puppeteer.launch()
.then(async browser => {
bro = browser;
});
Дайте мне знать, если это работает.
Версия 2 Поскольку среда узла асинхроннавам нужно будет изменить способ вызова функций и передачи переменных.Вот новый код, где браузер varable доступен вне run ().
var bro;
async function run(){
await puppeteer.launch()
.then(res => bro = res);
const page = await bro.newPage();
await page.goto('https://github.com/login');
}
//another function
async function another(){
console.log('2')
const page = await bro.newPage();
await page.goto('https://github.com');
await bro.close();
}
run().then(() => another());
NOTE закройте браузер, используя bro.close()
в последней функции, которую вы используете в