async.mapLimit 用于发出多个请求
async.mapLimit usage to make multiple requests
我有这样一行:
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
函数中调用 callback
。否则,框架无法知道工作何时完成。
我有这样一行:
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
函数中调用 callback
。否则,框架无法知道工作何时完成。