Node.js 嵌套异步函数变量范围

Node.js 嵌套异步函数变量范围,node.js,async-await,puppeteer,Node.js,Async Await,Puppeteer,我有这样的代码结构(包括套接字和木偶演员): 我尝试了一些变化(闭包等),但无法使其工作。如何正确传递url变量?。evaluate回调函数在页面上下文中运行,而不是在主脚本上下文中运行,这就是url未定义的原因 在回调中,您可以访问浏览器全局范围中定义的任何变量 如果要从内部访问url。请评估,您可以将其作为参数传递 page.evaluate(async (url) => { // browser context var response = await fetch(u

我有这样的代码结构(包括套接字和木偶演员):


我尝试了一些变化(闭包等),但无法使其工作。如何正确传递url变量?

。evaluate
回调函数在页面上下文中运行,而不是在主脚本上下文中运行,这就是
url
未定义的原因

在回调中,您可以访问浏览器全局范围中定义的任何
变量

如果要从
内部访问
url
。请评估
,您可以将其作为参数传递

page.evaluate(async (url) => {
    // browser context
    var response = await fetch(url);  
    var json = await response.json();
    return json;
}, url); // pass it as an argument
page.evaluate(async (url) => {
    // browser context
    var response = await fetch(url);  
    var json = await response.json();
    return json;
}, url); // pass it as an argument