javascript - 我在此处 map 中为每个用户查找路由服务时遇到问题

标签 javascript maps here-maps-rest

我正在使用这里的 map 来查找多个用户和目的地的路线。 我在搜索栏中输入纽约并点击搜索按钮,假设 api 返回十个用户的数组。现在我想为每个用户获取路由服务。

for(var i=0; i< aws_data.length; i++)
{

    aws_possition = 
    {
        lat: aws_data[i].lat,
        lng: aws_data[i].lng
    };
    lat2 = aws_possition.lat;
    lng2 = aws_possition.lng;

    var router = platform.getRoutingService(),
        parameters = {
                waypoint0: lat1+","+lng1,
                waypoint1: lat2+","+lng2,
                mode: 'fastest;car;traffic:enabled',
                departure: 'now'
        };
}

现在,当我运行这段代码时,platform.getRoutingService 在给我每个用户的结果之前运行了 10 次。 这是我完整的 for 循环代码。

   for(var i=0; i< aws_data.length; i++)
{

    aws_possition = 
    {
        lat: aws_data[i].lat,
        lng: aws_data[i].lng
    };
    lat2 = aws_possition.lat;
    lng2 = aws_possition.lng;

    var router = platform.getRoutingService(),
        parameters = {
                waypoint0: lat1+","+lng1,
                waypoint1: lat2+","+lng2,
                mode: 'fastest;car;traffic:enabled',
                departure: 'now'
        };
        console.log(parameters);
        //debugger;
    router.calculateRoute(parameters,
            function (result) {

            }


}

最佳答案

您好 Farrakh,欢迎来到 Stack Overflow。如果您使用 this API然后你可以将你的数据映射到 promise (请注意,需要为 IE 和(非常)旧的浏览器修改 promise )

const router = platform.getRoutingService(),
  waypoint1 = aws_possition.lat + ',' + aws_possition.lng,
  mode = 'fastest;car;traffic:enabled',
  departure = 'now';
Promise.all(
  aws_data.map(
    ({ lat, lng, id }) =>
      console.log(`processing ${id}`) ||
      new Promise((resolve, reject) =>
        router.calculateRoute(
          {
            waypoint0: lat + ',' + lng,
            waypoint1,
            mode,
            departure,
          },
          (result)=>resolve([id,result]),
          reject,
        ),
      ),
  ),
).then(
  (results) => console.log('I have results:', results),
  (error) => console.log('something went wrong:', error),
);

关于javascript - 我在此处 map 中为每个用户查找路由服务时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53283695/

相关文章:

javascript - 将事件监听器添加到 d3 画笔

ios - 苹果 map url 示例,用于查找特定坐标的方向

java - 查找多个键是否映射到相同的值

android - LocationDataSourceHERE 拒绝访问

javascript - Here Maps - 在 "choose view"菜单中切换图 block 层

Javascript: Camel 化所有 API 响应

javascript - 如何解决使用 useState 并获取 "Too many re-renders. React...."的函数调用

javascript - 将纬度和经度传递给 iframe

javascript - 有没有办法在基本 map 中禁用 3D 建筑物 View ? Javascript 这里有 map

javascript - 变量不足的 SMMRY API 问题