如何在 Google AutoComplete 异步回调中访问全局变量?

how to access global variables inside google autocomplete async callback?

提问人:sohan vemu 提问时间:1/25/2022 更新时间:1/25/2022 访问量:102

问:

所以我正在做一个 angular 项目,我在 leaflet 框架之上使用 leaflet-google-places-autocomplete API。

我的目标是从 API 中检索位置数据,并在组件中的其他位置使用它。但是我无法从异步回调函数中获取数据。 这是我的 API 实现:

placesLatLng: any; //global variable
initPlaces(){
    let gplaces = new L.control.GPlacesAutocomplete({
        position: 'topleft',
        callback: this.getLoc,
    });
    gplaces.addTo(this.map);
}

//async callback
getLoc(results){
    //result holds all the data I need
    this.placesLatLng = results.geometry.location; //I need to use this value elsewhere.
}

但是当我尝试这样做时,我收到一个错误,说无法读取未定义的属性this.placesLatLng。我见过我们需要使用承诺的解决方案,但还没有看到这种特殊情况。

与此问题相关的任何帮助都会有所帮助。

谢谢

angularjs 回调 传单 asynccallback google-places-autocomplete

评论


答:

0赞 Gerald LeRoy 1/25/2022 #1

答案是吗?也就是说,你想像这样初始化你的全局变量?

var any = 'some value'  // set value for global var

placesLatLng = any;     // initialize global var, 
                        // use '=' instead of ':'