我有一個包含 puppeteer 函式的回圈。問題是回圈正在同時執行所有 puppeteer。
我試過這個:
import puppeteer from "puppeteer"
(async function(){
for(let i = 0; i < 3; i ){
await launchPup().then(() => {
});
}
})()
async function launchPup() {
puppeteer.launch({headless: false}).then(async browser => {
await browser.newPage()
await browser.close()
})
}
你能告訴我我做錯了什么以及如何解決這個問題?
uj5u.com熱心網友回復:
它是一個異步功能,您必須留意創建的瀏覽器。
像這樣的東西應該可以幫助你。
var totalOpenedbrowser = 0;
var minBrowser = 2;
const wait = () => new Promise((resolve) => setTimeout(resolve, 200))
(async function() {
for (let i = 0; i < 3; i ) {
await launchPup().then(() => {});
}
})()
async function launchPup() {
while (totalOpenedbrowser > = minBrowser)
await wait(); // wait until there is a free slott
totalOpenedbrowser ;
puppeteer.launch({
headless: false
}).then(async browser => {
await browser.newPage()
await browser.close()
totalOpenedbrowser--;
})
}
看看我構建的庫,它將解決您的問題 https://www.npmjs.com/package/puppeteer-express
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/452310.html
標籤:javascript 循环 异步等待 承诺 傀儡师
