Я пытаюсь проанализировать веб-сайт спецификации из сохраненного HTML на моем компьютере. Я могу опубликовать файл по запросу.
Я сгорел, пытаясь понять, почему он не работает синхронно. Комментарии должны регистрировать сначала CCCC
, затем BBBB
, затем, наконец, один AAAA
.
Код, который я запускаю, не будет ждать первого препятствия (сначала он печатает AAAA...
). Я неправильно использую request-promise
? Что происходит?
Это из-за .each()
метода cheerio
(я предполагаю, что он синхронный)?
const rp = require('request-promise');
const fs = require('fs');
const cheerio = require('cheerio');
async function parseAutodeskSpec(contentsHtmlFile) {
const topics = [];
const contentsPage = cheerio.load(fs.readFileSync(contentsHtmlFile).toString());
const contentsSelector = '.content_htmlbody table td div div#divtreed0e338374 nobr .toc_entry a.treeitem';
contentsPage(contentsSelector).each(async (idx, topicsAnchor) => {
const topicsHtml = await rp(topicsAnchor.attribs['href']);
console.log("topicsHtml.length: ", topicsHtml.length);
});
console.log("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
return topics;
}