【发布时间】:2021-02-12 05:57:52
【问题描述】:
我正在尝试循环 .map 函数,直到满足条件。一旦满足条件,我想打破循环,但我得到了非法的 break 语句输出。我对node js和cheerio还很陌生。
async function checkproduct() {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
const page2 = await browser.newPage();
const maxRetryNumber = Infinity;
let success = false;
await page.goto("https://www.example.com");
for (let retryNumber = 1; retryNumber <= maxRetryNumber; retryNumber++) {
await page.reload();
const html = await page.content()
const $ = cheerio.load(html);
const results = $(".c-products__item").map((index,element) => {
const titleElement = $(element).find(".node--view-mode-search-result");
const title = $(titleElement).attr("gtm-name");
if( title == "abc" ){
const urlElement = $(element).find(".product-selected-url");
const url = $(urlElement).attr("href");
const skuShoe = $(titleElement).attr("data-sku");
console.log(url)
success = true;
break;
return{title,url,skuShoe}
}
}).get();
return results;
}
}
checkproduct();
【问题讨论】:
-
请努力格式化您的代码,使其更易于阅读。这将使人们更容易为您提供帮助。
标签: node.js loops puppeteer cheerio