forループ内でGoogleMapsAPI呼び出しを処理する方法

ガボガバン

Google Places APIJavascriptを使用してレストランを検索したい長方形の境界の配列があります。

最初は、境界配列をforループで繰り返すことを考えました問題は、各反復で非同期API呼び出しを行い、forループが同期アクションであるということです。

理想的には、各API呼び出しの間に1分の違いがあるすべての境界を反復処理し、すべての境界が検索されたら終了します。おそらく、setIntervalそれを回避することはできません。

これどうやってするの?

loopSearch(zoneBoundaries)
    {
        for (var i = 0; i <= zoneBoundaries.length; i++)
        {
            const self = this;

            var bounds = new google.maps.LatLngBounds(
                new google.maps.LatLng(zoneBoundaries[i].sw),
                new google.maps.LatLng(zoneBoundaries[i].ne)
            );

            self.placesService = new google.maps.places.PlacesService(self.map);

            var request = { bounds: bounds, types: [ 'restaurant', 'bar'] };

            self.placesService.search(request, self.placesCallback);
        }
    },
ニシャントパテル

クリーンな解決策の1つは、Promise allを使用し、マップとともに待機して、ゾーン境界内の座標を反復処理することです。

await Promise.all(
  zoneBoundaries.map(async (val, index) => {
            var bounds = new google.maps.LatLngBounds(
                new google.maps.LatLng(zoneBoundaries[index].sw),
                new google.maps.LatLng(zoneBoundaries[index].ne)
            );

            self.placesService = new google.maps.places.PlacesService(self.map);

            var request = { bounds: bounds, types: [ 'restaurant', 'bar'] };
            const response = await self.placesService.search(request, self.placesCallback);
            const result = response.json()
            console.log(result)
  })
);

上記のアプローチを使用する利点はmap、プロミスが返されるとすぐに次のアイテムに移動しPromise.all、これらのプロミスがすべて解決されるまで待機することです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Firebaseを呼び出してデータを取得するループ内の配列を処理/更新する方法

分類Dev

Firebaseを呼び出してデータを取得するループ内の配列を処理/更新する方法

分類Dev

Javascript:配列フィルター操作内でjQuery.ajax関数呼び出しを処理する方法は?

分類Dev

Javascript:配列フィルター操作内でjQuery.ajax関数呼び出しを処理する方法は?

分類Dev

API呼び出しでRESOURCEEXHAUSTEDエラーを処理する方法

分類Dev

ループ内での非同期呼び出しの処理

分類Dev

Spring / EJB / Mockito ...プロキシで内部呼び出しを処理する方法は?

分類Dev

forEachループ内でサービスを呼び出し、処理が完了するのを待ってから続行します

分類Dev

Ninject InRequestScopeで非同期呼び出しを処理する方法は?

分類Dev

jQuery AJAXでAPI呼び出しエラーを処理する方法は?

分類Dev

reduxreactアプリケーションで非同期呼び出しを処理する方法

分類Dev

gluonjavafxアプリケーションで非同期API呼び出しを処理する方法

分類Dev

ajax呼び出しでリソースを処理する

分類Dev

処理されたデータに依存している場合にトップレベルでフックを呼び出す方法

分類Dev

非同期関数内でReactsetState()呼び出しをまとめてバッチ処理する方法は?

分類Dev

oEventなしで関数の呼び出しを処理する方法

分類Dev

ブックマークできるGETAPI呼び出しを使用してrouteProviderを処理する方法は?

分類Dev

非同期呼び出しでループを終了する方法は?

分類Dev

Angularサービスの$ http呼び出しで絶えず変化するデータを処理する方法

分類Dev

jqGridajax呼び出しを処理する正しい方法

分類Dev

microappsNode.jsモジュールを使用してShopifyのAPI呼び出し制限を処理する方法

分類Dev

タグに対するAzureResource ManagementREST呼び出しをフィルター処理する方法

分類Dev

コルーチンスコープを使用してWebサービスを呼び出し、エラーkotlinを処理する方法

分類Dev

ノードjsを使用してループ内でAPIを呼び出す方法

分類Dev

Angular Subsinkで2つのAPI呼び出しを処理する方法は?

分類Dev

ReactでsetStateへの非同期呼び出しを処理する方法は?

分類Dev

ラムダnodejsで非同期呼び出しを処理する方法

分類Dev

$ .Deferredでネストされた呼び出しを処理する方法

分類Dev

同時API呼び出しを処理する方法

Related 関連記事

  1. 1

    Firebaseを呼び出してデータを取得するループ内の配列を処理/更新する方法

  2. 2

    Firebaseを呼び出してデータを取得するループ内の配列を処理/更新する方法

  3. 3

    Javascript:配列フィルター操作内でjQuery.ajax関数呼び出しを処理する方法は?

  4. 4

    Javascript:配列フィルター操作内でjQuery.ajax関数呼び出しを処理する方法は?

  5. 5

    API呼び出しでRESOURCEEXHAUSTEDエラーを処理する方法

  6. 6

    ループ内での非同期呼び出しの処理

  7. 7

    Spring / EJB / Mockito ...プロキシで内部呼び出しを処理する方法は?

  8. 8

    forEachループ内でサービスを呼び出し、処理が完了するのを待ってから続行します

  9. 9

    Ninject InRequestScopeで非同期呼び出しを処理する方法は?

  10. 10

    jQuery AJAXでAPI呼び出しエラーを処理する方法は?

  11. 11

    reduxreactアプリケーションで非同期呼び出しを処理する方法

  12. 12

    gluonjavafxアプリケーションで非同期API呼び出しを処理する方法

  13. 13

    ajax呼び出しでリソースを処理する

  14. 14

    処理されたデータに依存している場合にトップレベルでフックを呼び出す方法

  15. 15

    非同期関数内でReactsetState()呼び出しをまとめてバッチ処理する方法は?

  16. 16

    oEventなしで関数の呼び出しを処理する方法

  17. 17

    ブックマークできるGETAPI呼び出しを使用してrouteProviderを処理する方法は?

  18. 18

    非同期呼び出しでループを終了する方法は?

  19. 19

    Angularサービスの$ http呼び出しで絶えず変化するデータを処理する方法

  20. 20

    jqGridajax呼び出しを処理する正しい方法

  21. 21

    microappsNode.jsモジュールを使用してShopifyのAPI呼び出し制限を処理する方法

  22. 22

    タグに対するAzureResource ManagementREST呼び出しをフィルター処理する方法

  23. 23

    コルーチンスコープを使用してWebサービスを呼び出し、エラーkotlinを処理する方法

  24. 24

    ノードjsを使用してループ内でAPIを呼び出す方法

  25. 25

    Angular Subsinkで2つのAPI呼び出しを処理する方法は?

  26. 26

    ReactでsetStateへの非同期呼び出しを処理する方法は?

  27. 27

    ラムダnodejsで非同期呼び出しを処理する方法

  28. 28

    $ .Deferredでネストされた呼び出しを処理する方法

  29. 29

    同時API呼び出しを処理する方法

ホットタグ

アーカイブ