Node.js 如何收集多个Json响应并将它们保留在函数之外?

Node.js 如何收集多个Json响应并将它们保留在函数之外?,node.js,puppeteer,Node.js,Puppeteer,我有一个包含几个JSON源代码的页面 const results = []; await page.on('response', async (response) => { if (response.url() ){ console.log('XHR response received'); console.log(await response.json()); //如何从response.json()收集数据并传递到results数

我有一个包含几个JSON源代码的页面

const results = [];

await page.on('response', async (response) => {    
    if (response.url() ){
        console.log('XHR response received'); 
        console.log(await response.json()); 
//如何从
response.json()
收集数据并传递到
results
数组

    } 
}); 

console.info(results); 

如果我正确理解您的问题,您可以在阵列中收集响应:

const results = [];

await page.on('response', async (response) => {    
    if (response.url() && response.status() == 200){
        console.log('XHR response received'); 
        results.push(await response.json()); 
    } 
});

await page.goto(url, {waitUntil : 'networkidle0'});

console.log(results);

我得到了这样的回复:
ReferenceError:results未定义
您是否在
页面之外声明了
结果
?(为了清楚起见,我在答案中添加了它)谢谢它起作用了。但现在我有第二个问题。我在第一个页面上单击,希望在加载第二个页面时收集response.json()。所以我坚持使用这段代码:(wait page.goto(url,{waitUntil:'load');wait page.click('#btnSearch');const results=[];wait page.on('response',async(response)=>{if(response.url()&&response.status()==200){console.log('XHR response接收到响应');results.push(wait response.json());});wait page.waitForSelector(“#statusInfo”);console.log(results);我的建议是:让我们关闭已解决的问题,打开另一个问题的问题。这样我们将更容易阅读您的代码(评论中的代码现在几乎不可读)。谢谢。我发布了我的问题