首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从监听器异步获取结果

从监听器异步获取结果
EN

Stack Overflow用户
提问于 2020-11-05 07:43:47
回答 1查看 68关注 0票数 1

我使用puppeteer-cluster + node js。我是个新手。我有点麻烦。我需要从站点获取XHR响应。我正在侦听页面,但无法将结果值写入变量。我需要在代码的另一部分中使用该值。如何在侦听器中等待函数执行,并将结果写入变量?

代码语言:javascript
复制
dataCreation = [];
function get_data (data){
 dataCreation [id] = data;}
await page.on('response', async (response) =>{
  if (response.url === 'your_url'){ 
    let XHR_response = await response.json();
    let array_lenght = (XHR_response).length;
    let data2 = XHR_response.objects[array_lenght-1].creationDate;
    get_data(data2);}});

await console.log(dataCreation [id];

但是dataCreation id是不可战胜的。因为我需要等待听众并从中得到结果。我该怎么做呢?谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-05 15:52:29

如下所示:

代码语言:javascript
复制
    const XHR_response = await new Promise((resolve) => {
      page.on('response', checkResponse);

      function checkResponse(response) {
        if (response.url() === 'your_url') {
          page.off('response', checkResponse);
          resolve(response.json());
        }
      }
    });

    let array_lenght = XHR_response.objects.length;
    let data2 = XHR_response.objects[array_lenght-1].creationDate;
    get_data(data2);

    console.log(dataCreation[id]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64689267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档