Недавно я столкнулся с проблемой в моем коде, из-за которой я зависел от Google Geocode API и мог отправлять только один адрес за раз в теле моей выборки. Это заставило меня проявить творческий подход.

У меня был массив объектов, содержащих адреса. Чтобы маркеры отображались на моей карте Google Map, мне нужно было указать координаты широты и долготы, которые соответствовали адресам в массиве объектов. Я сопоставил массив и инициировал запрос на выборку на каждой итерации. Это привело к множеству обещаний. Не то, на что я надеялся!

Чтобы усложнить ситуацию, мой оператор .then после сопоставления массива был запущен, потому что он увидел массив, который не является обещанием, и поэтому он инициировал функцию до того, как обещания были реализованы.

Promise.all

Promise.all устранил проблему. Что он делает, так это когда вы оборачиваете его вокруг массива обещаний, он ждет, пока все обещания не будут реализованы, прежде чем он сообщает функции .then о срабатывании. Посмотрите мой код ниже:

Надеюсь, это поможет кому-нибудь еще, столкнувшемуся с той же проблемой!