首页 > 解决方案 > 如何从一系列承诺中获取价值?

问题描述

for (var year = year_from; year <= year_to; year++) {
  for (var month = month_from; month <= 12; month++) {
    for (var day = day_from; day <= 31; day++) {
      var url = "something_url" + year + "/" + month + "/" + day + "/";
      var current_date = day + "." + month + "." + year;
      try {
        var options = {
          uri: url,
          transform: function (body) {
            var $ = cheerio.load(body);
            $('div[class="post"]').each(function (month, elem) {
              var nested = $(this).find('div[class="text"]');
              var nested_a = nested.find('a');
              var nested_href = nested_a.attr('href');
              var nested_text = nested_a.text();
              var lc_nested_text = nested_text.toLowerCase();
              var s_lc_nested_text = lc_nested_text.toString();
              if (s_lc_nested_text.indexOf(query1) > -1) {
                post.name1 = s_lc_nested_text;
                post.url1 = f_url + nested_href;
                post.date1 = current_date;
              }
            });
          }
        };

        prs.push(rp(options));
      }
      catch {
        console.log('parse error');
      }
    }
  }
}

Promise.all(prs)
  .then((result) => {
    res.send(result);
  }).catch(err => console.log(err));  

我使用 request-promise 从对 API 的请求中获取结果,并将其放入一组 Promise 中。将此结果发送到浏览器后,我得到以下信息:

浏览器响应

标签: node.jsfor-looppromiserequest-promise

解决方案


推荐阅读