映射数组并调用所有项目的异步函数的方式是什么?
const scrape = async (url) => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(url);
const [el] = await page.$x('//*[@id="page-body"]/h2/a');
const txt = await el.getProperty('textContent');
const rawTxt = await txt.jsonValue();
//here do an another thing with an other function
const obj = formatRes(rawTxt);
browser.close();
return obj;
};
第二个功能:
const formatRes = (res) => {
[...]
return obj;
}
调用第一个函数:
linksB.map(item => scrape(item));
linksB
是一个URL数组。
我想将所有通过刮擦返回的对象放在一个新数组中。
答案 0 :(得分:0)
假设我们有一个链接数组,您想在每个链接上进行请求,那么我们可以在map
内进行数组Promise.all
const urls = [ 'url1...', 'url2...', 'url3...' ];
const responses = await Promise.all(urls.map(url => makeRequest(url)))
// use responses array where each response map exactly to each url's response