首页 > 解决方案 > 如何从 openGeocoder res 数据中访问数据?

问题描述

我有一些代码-

       var lat = null
        openGeocoder()
            .geocode('Kamrangir Char, Dhaka, Bangladesh')
            .end(async (err, res) => {
                lat = res[0].lat
            });
       console.log(lat);

现在我发现是空的。如何从函数中找到实际值?

我使用node-open-geocoder npm 包。我正在构建 api。在这里,我想在我的后端应用程序中将地址转换为 lat 和 lng 点。如果不可能,那我该怎么做。

这里是我存储数据库的纬度值。这就是为什么我想从函数外部访问纬度数据。

请帮我。

标签: javascriptnode.jsapi

解决方案


您无法打印该值的原因是您先打印然后再分配,因为那是异步的openGeocoder()

尝试

openGeocoder()
  .geocode("Kamrangir Char, Dhaka, Bangladesh")
  .end((err, res) => {
    let lat = res[0].lat;
    console.log(lat);
  });

或使用 async / await (仅适用于 async 函数)

async function some_function() {
  let lat = await openGeocoder()
    .geocode("Kamrangir Char, Dhaka, Bangladesh")
    .end((err, res) => res[0].lat);

  console.log(lat);
}

推荐阅读