在nodejs中循环异步函数

Looping async functions in nodejs

所以这是我的问题。在下面的函数中,我想使用 puppeteerjs 从网站获取一些数据。该函数使用从 mongodb 数据库中获取的名称在网站上搜索产品。所以这是我的问题。我想通过我从 mongo 获得的名称数组循环函数。因此,如果函数完成一次,它将再次从数组中的下一个名称开始,直到数组中没有其他名称。

async function scrape() {
    const browser = await puppeteer.launch({
        headless: false
    });
    const page = await browser.newPage();
    await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36');
    await page.goto(dealer);
    await page.type('.Search-bar-text-input', arrayOfArticles[i]);
    await page.click('.Embedded-search-button')
    await page.waitFor('.BuyingOptions-total-price');

    const result = await page.evaluate(() => {
        let path = '.BuyingOptions-total-price';
        let price = document.querySelector(path).innerText;

        return price;
    });

}

所以我本来想简单地这样做:

for (var i = 0, len = arrayOfArticles.length; i < len; i++){

但据我所知,它不适用于异步函数。我将如何为我的功能存档相同的文件?

稍微修改一下就可以了

return page.evaluate(() => {
    let path = '.BuyingOptions-total-price';
    let price = document.querySelector(path).innerText;

    return price;
});

//----------------

(async () => {
    for (var i = 0, len = arrayOfArticles.length; i < len; i++){
        const result = await scrape(arrayOfArticles[i]);
    }
})()