我可以
array.push(fetch(`something`))
在Promise.all中执行/等待中,或
fetch(`something`)
在将其推入数组之前执行自身,而不在需要时在代码中进一步执行?
更多信息:
假设我需要使用多个查询来进行等待(如果我想一个接一个地执行它们)或Promise.all(如果我想一起异步执行它们)。
我创建一个查询数组:
let queries = []
let allResults = []
承诺:
tiersQueries.push(fetch(`something`))
他们像这样执行它:
for await (const oneResult of queries) {
allResults.push(oneResult)
}
或者这个:
let results = await Promise.all(array)
allResults = results
答案 0 :(得分:0)
许诺工作的方式,它们在创建时将立即开始执行,但是会存储其状态(已解决,已拒绝或未决),因此即使在完成后附加的.then
或.catch
处理程序中,火。同样,Promise.all
只是等待所有承诺都得到解决,在您通过.all
之前,并不关心它们是否已解决。这意味着您可以很好地将所有提取推入数组,并使用Promise.all
附加解析处理程序,以便在处理完成时(即使它们在.all
运行之前完成)也可以处理所有处理结果)。