根据这个link(新手错误#2),我不应该在Promises中使用循环,而应该使用Promise.all(iterable)
。在Promises中使用循环的正确方法
这是否真的适用于所有循环? Promise.all(iterable)
需要大小为n的数组。如果我使用Promise.all(iterable)
,那么我会得到一个大小为n的数组(即iterable_A)。
如果我想迭代iterable并只想将某些满足我的条件的元素放到另一个迭代器(例如iterable_B)并想要返回iterable_B而不是iterable_A,该怎么办?我是否也应该使用Promise.all()
?
您可以在promise中使用循环,只要它们不需要太多时间来执行,并且您不会在循环中执行任何异步任务。 – SpiderPig
啊,是的。这就说得通了。上面链接中的文章对此并不清楚。它给人的印象是所有的循环都被禁止承诺。 – thadeuszlay
[正确的方式来编写承诺的循环]的可能的重复。(http://stackoverflow.com/questions/24660096/correct-way-to-write-loops-for-promise) – djechlin