Я хотел очистить несколько URL-адресов одновременно, поэтому я использовал p-queue
для реализации Promise
-queue.
Например, см. Код ниже, использует 1 браузер и несколько страниц для выполнения этой работы ,
const queue = new PQueue({
concurrency: 5
});
(
async () => {
let instance = await pptr.launch({
headless: false,
});
// task processor function
const createInstance = async (url) => {
let page = await instance.newPage();
await page.goto(email);
// (PROBLEM) more operations go here
...
return await page.close();
}
// add tasks to queue
for (let url of urls) {
queue.add(async () => createInstance(url))
}
}
)()
Проблема в том, что действительно несколько URL-адресов могут быть открыты одновременно на нескольких страницах, но похоже, что только одна (и только одна) страница, на которой работает браузер, продолжит выполнять операции ( см. приведенный выше код more operations go here
раздел), другие страницы (или вкладки) просто перестанут работать, если я не нажму на эту страницу, чтобы сфокусироваться на ней.
Так есть ли обходной путь для одновременного запуска всех страниц?