Javascript NodeJS中的puppeter异步等待循环

Javascript NodeJS中的puppeter异步等待循环,javascript,node.js,asynchronous,promise,puppeteer,Javascript,Node.js,Asynchronous,Promise,Puppeteer,我正在尝试制作一个脚本: 从站点地图获取所有URL 拍了一张木偶演员的截图 我目前正在尝试理解如何异步编码,但在为这个问题找到正确的编码模式方面仍然有困难。 以下是我目前拥有的代码: //const spider=require('./spider'); const Promise=require(‘蓝鸟’); const puppeter=require('puppeter'); const SpiderConstructor=require('sitemapper'); 异步函数爬网(ur

我正在尝试制作一个脚本:

  • 从站点地图获取所有URL
  • 拍了一张木偶演员的截图
  • 我目前正在尝试理解如何异步编码,但在为这个问题找到正确的编码模式方面仍然有困难。 以下是我目前拥有的代码:

    //const spider=require('./spider');
    const Promise=require(‘蓝鸟’);
    const puppeter=require('puppeter');
    const SpiderConstructor=require('sitemapper');
    异步函数爬网(url,超时){
    const results=wait spider(url,超时);
    等待承诺。每个(结果,异步(结果,索引)=>{
    等待屏幕(结果、索引);
    });
    }
    异步函数屏幕(结果、索引){
    const browser=wait puppeter.launch();
    日志('do',索引);
    const page=wait browser.newPage();
    等待页面。转到(结果);
    const path=wait'screenshots/'+index+page.title()+'.png';
    等待页面。屏幕截图({path});
    browser.close();
    }
    异步函数spider(url、超时){
    const spider=等待新的SpiderConstructor({
    url:url,
    超时:超时
    });
    const data=wait spider.fetch();
    console.log(数据.站点.长度);
    返回数据。站点;
    };
    爬行https://www.google.com/sitemap.xml', 15000)
    .catch(错误=>{
    控制台错误(err);
    
    });
    const path
    不需要一个
    await
    ,它是一个字符串-也许你的意思是
    'screenshots/'+index+await page.title()+'.png'?您的代码似乎非常好。我猜想这是Sitemapper的错——它几乎没有文档记录,并且在代码中使用了许多promise反模式。例如,看一看。它似乎只是在超时时忽略URL。
    const path
    不需要
    await
    ,它是一个字符串-也许你的意思是
    'screenshots/'+index+await page.title()+'.png'?您的代码似乎非常好。我猜想这是Sitemapper的错——它几乎没有文档记录,并且在代码中使用了许多promise反模式。例如,看一看。它似乎只是在超时时忽略URL。