【发布时间】:2021-02-05 06:46:04
【问题描述】:
我们如何确定一个循环中是否有多个 Promise(如 5-10 个)运行 100 次,我们如何确保所有的 Promise 在运行下一个循环之前得到解决。
假设我正在运行一个循环
项目数组的长度 = 100;
for(i in items)
{
if(i=0)
{
await getData1();
}
if(i=1)
{
const a = await getData2();
const b = await getData3(a);
}
}
如果第一次 = 1,它正在运行。我如何确保在运行 i=2 之前,它应该解决 i=1 的所有承诺。 并且不应该积累未解决的承诺。
【问题讨论】:
-
await将保证承诺得到解决。 -
你想要 Promise.all([...])
-
@zerkms :等待将解决我的承诺,但我希望先解决该承诺,然后移至下一行,如果未解决,则应等到那时,但仅在解决后才应移至下一行行。
-
@linda : Promise.all 将解决 promise 但我们如何告诉它它应该解决它的顺序,cz 我的第一个函数的输出是第二个函数的输入。
-
@SunnySinha 这就是你的代码要做的事情:下一次迭代只会在之前的承诺得到解决后开始。
标签: typescript async-await es6-promise