赋值后变量中的未定义变量

时间:2019-02-24 12:27:26

标签: javascript node.js puppeteer

我目前正在努力获取在变量“名称”中定义的变量“索引”,它每次都返回“未定义”,而实际上不返回。我知道我是一个异步函数,但是这种情况很奇怪,我无法使其正常工作。

我有以下内容:

const puppeteer = require('puppeteer');


(async function main() {
    try {
        for (var index = 1; index < 20; index++) {
            console.log(index)
            const browser = await puppeteer.launch();
            const [page] = await browser.pages();

            await page.goto(`MYSITE`);

            var name = await page.evaluate(() => {
                return document.querySelector(`#itembanking-list > tbody > tr:nth-child(${index}) > td:nth-child(2)`).innerText;
            })

            await browser.close();
        }
    } catch (err) {
        console.error(err);
    }
})();

运行以下代码时,出现此错误:

Error: Evaluation failed: ReferenceError: index is not defined

如何获取在“名称”中定义的变量“ index”?

1 个答案:

答案 0 :(得分:1)

您应将index变量作为评估中的第二个参数传递,并在回调中处理

await page.evaluate(index => {...code}, index)