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

Javascript 赋值后变量中未定义的变量,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我目前正在努力获取变量名中定义的变量索引,它每次都返回undefined,而它不应该返回undefined。我知道我是一个异步函数,但这种情况很奇怪,我无法让它工作 我有以下资料: const puppeteer = require('puppeteer'); (async function main() { try { for (var index = 1; index < 20; index++) { console.log(inde

我目前正在努力获取变量名中定义的变量索引,它每次都返回undefined,而它不应该返回undefined。我知道我是一个异步函数,但这种情况很奇怪,我无法让它工作

我有以下资料:

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);
    }
})();

如何获取name中定义的变量索引?

您应该在evaluate中将索引变量作为第二个参数传递,并在callback中处理它

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

你怎么知道它是未定义的?您是否在实际页面上尝试了该查询选择器?可能是选择器不正确,它是正确的。我知道它是未定义的,因为当我运行以下代码时,它返回我“错误:评估失败:引用错误:未定义索引”页内评估函数可能重复您无法访问变量,但实际的页变量。如果要使用变量,应将其传递给评估函数,如此等待页。评估索引有关详细信息,请参阅重复问题
await page.evaluate(index => {...code}, index)