Node.js Can';t在for循环中传递项以同时打印两个项

Node.js Can';t在for循环中传递项以同时打印两个项,node.js,web-scraping,request,cheerio,Node.js,Web Scraping,Request,Cheerio,我在节点中编写了一个脚本,将标题和URL从网页的登录页刮到不同帖子的标题,然后从其内部页面获取每个用户的配置文件名。我唯一无法解决的问题是在for循环中打印项和输出 如何在for循环中传递项,以便脚本同时打印项和输出 我试过: var request = require('request'); var cheerio = require('cheerio'); const url = 'https://stackoverflow.com/questions/tagged/web-scrapin

我在
节点
中编写了一个脚本,将
标题
URL
从网页的登录页刮到不同帖子的标题,然后从其内部页面获取每个用户的
配置文件名
。我唯一无法解决的问题是在
for循环
中打印
输出

如何在
for循环中传递
,以便脚本同时打印
输出

我试过:

var request = require('request');
var cheerio = require('cheerio');

const url = 'https://stackoverflow.com/questions/tagged/web-scraping';
const host = 'https://stackoverflow.com';

function getPosts() {
    request(url, function(error, response, html) {
        if (!error && response.statusCode == 200) {
            var $ = cheerio.load(html);
            let linkstorage = [];
            $('.summary .question-hyperlink').each(function() {
                var items = $(this).text();
                var links = host + $(this).attr("href");
                linkstorage.push(links);
            });

            for (const newlink of linkstorage) {
                request(newlink, function(error, response, html) {
                    if (!error && response.statusCode == 200) {
                        var $ = cheerio.load(html);
                        var output = $(".user-details a").eq(0).text();
                        console.log(output);
                    }
                });
            }
        }
    });
}
getPosts();

变量声明和赋值可以在JavaScript中分开。您可以定义指定的for循环范围之外的items变量

// define it outside the jquery function scope
       let items;

      $('.summary .question-hyperlink').each(function(){
        items = $(this).text();
        ...
      });

      for (const newlink of linkstorage){
        request(newlink,function(error,response,html){
          if (!error && response.statusCode == 200){
          var $ = cheerio.load(html);
          var output = $(".user-details a").eq(0).text();
          console.log(output);
          console.log(items); // It is visible in this scope
          }
        });
      }
    }

在这种情况下,脚本将多次打印单个项(数组的最后一项)@jakemingolla.@MITHU true,我在教学时主要将其用作占位符:)我不知道指定了什么“同时打印
输出