我有这样的行:
async.mapLimit(urls, 10, getCertificatesFromPage, callback)
其中 urls 是一个包含 url 的数组,getCertificatesFromPage :
getCertificatesFromPage = (url, callback) ->
request url, (err, res, html) ->
$ = cheerio.load(html)
allRows = $('div.search-result-shop')
objCollector = []
allRows.each () ->
links = $(this).find('a')
obj =
companyName: $(this).find('.companyname').text()
pageDetailsUrl: ''
link: ''
for link in links
extractedLink = link.attribs.href
if extractedLink.includes('http')
obj.link = extractedLink
else
obj.pageDetailsUrl = nameSpace.pageName + extractedLink
objCollector.push obj
return objCollector
这效果不佳,因为我需要收集每个页面 10 x 10 页的所有对象,但我只收到 50 * 10 链接,还有更多
我可以用这段代码做什么来让它工作?
最佳答案
getCertificatesFromPage = (url, callback) ->
您没有在 getCertificatesFromPage
函数中调用回调
。如果没有它,框架就无法知道工作何时完成。
关于javascript - async.mapLimit 使用来发出多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30400595/