- 此问题在此处已有答案**:
Promise.all is returning an array of undefined and resolves before being done(3个答案)
When should I use a return statement in ES6 arrow functions(6个答案)
3天前关闭。
我不确定我是否使用了promise.all错误,或者我用于远程检索pdf并解析这些文件的nodejs包是否一次被太多的请求淹没。
https://codesandbox.io/s/sharp-wave-qikvb//此处为代码和框
我试着用承诺。所有
let urls = [arrayofURLS];
function pdfData() {
return Promise.all(
urls.map(item => {
this.crawlPdf(item);
})
)
.then(result => {
// handle result
})
}
这是使用Crawler程序包的函数(称为crawler-request):
crawlPdf: async function(Url) {
return new Promise(async function(resolve, reject) {
let response = await crawler(Url);
resolve(response.text);
}
5个请求中有2个通常是未定义的,但有时一切都是O.O.
1条答案
按热度按时间6ju8rftf1#
你必须返回promises给all方法,现在你没有返回任何东西,所以看起来像
Promise.all([undefined, undefined, undefined])
因为看起来你可以使用箭头函数,你可以把你的花括号换成圆括号,或者把它放在一行,完全去掉括号--这些格式总是返回函数体的结果。
或者说得很明白