【发布时间】:2020-03-22 18:35:10
【问题描述】:
首先我有两个函数我在该循环中有一个 for 循环我正在调用第二个具有请求承诺的函数。我担心的是,当循环正在执行并调用第二个函数它没有等待 request-promise 完成,循环接下来会迭代并再次调用第二个函数。 我希望先完成 request-promise,然后再完成循环的下一次迭代。那我该怎么做呢?为了简单起见,我粘贴了第一个和第二个函数的代码 sn-ps
第一个功能码sn-p
for (let i = 0; i < len; ++i) {
var url_ = "https://www.someurl****.com" + allUrls_ + urlLastParam + (i + 1).toString();
console.log(allUrls_);
console.log('getValues URL: ' + url_);
getValues(res, url_, allUrls_)
}
第二个功能
const rp = require('request-promise');
const cheerio = require('cheerio');
function getValues(res, url_, allUrls_) {
let options = {
uri: url_,
transform: function (body) {
return cheerio.load(body);
}
};
console.log('inside getValues');
rp(options)
.then(function ($) {
console.log('inside getValues function request');
$('.some-selector').map(function (i, links) {
// my custom code
})
})
.catch(function (err) {
// catch errors
})
}
【问题讨论】:
标签: node.js web-scraping request cheerio