我不确定即时通讯是否使用了promise.all,或者我一次用来检索pdf并解析它们的nodejs包是否一次被太多请求所淹没。
https://codesandbox.io/s/sharp-wave-qikvb //这里是代码框
我尝试使用promise.all
let urls = [arrayofURLS];
function pdfData() {
return Promise.all(
urls.map(item => {
this.crawlPdf(item);
})
)
.then(result => {
// handle result
})
}
这是使用搜寻器包的功能(称为“搜寻器请求”):
crawlPdf: async function(Url) {
return new Promise(async function(resolve, reject) {
let response = await crawler(Url);
resolve(response.text);
}
5个请求中有2个通常是不确定的。 但是有时候一切正常。
答案 0 :(得分:1)
您必须将promise返回给all方法。现在您什么也没返回,所以看起来像Promise.all([undefined, undefined, undefined])
由于看起来可以使用箭头功能,因此只需将大括号切换为括号,或将其放在一行上并完全消除括号-这些格式始终返回函数主体的结果。
urls.map(item => (
this.crawlPdf(item)
));
urls.map(item => this.crawlPdf(item));
或者保持明确
urls.map(item => { return this.crawlPdf(item) });