React / Javascript-在运行函数之前等待变量填充

时间:2020-04-10 19:52:00

标签: javascript reactjs

我正在使用Google自动完成地理编码输入。我设置了它来处理输入(所选位置)的更改的地理编码,但是如果用户在键入位置后未从自动完成结果中进行选择,然后单击了提交按钮,也可以进行地理编码。一旦获得用户的所选位置,我便会使用函数updateParentState()将经度/经度坐标传递到父组件的状态,我想做的就是等待lat和{{1}在运行该函数之前要填充的变量。当前,函数的自动完成部分(条件的lng部分)正在运行,因为if (place.geometry) / lat在更改时立即被填充,但是由于对原始输入进行地理编码会花费一些时间, lng函数在填充updateParentState() / lat之前正在运行。我该如何调整:

lng

1 个答案:

答案 0 :(得分:1)

self.props.updateParentState的回调以及geocoder.geocode块的结尾处调用if

geocodeLoc = (place) => {
    var self = this;
    if (place.geometry) {
        const lat = place.geometry.location.lat();
        const lng = place.geometry.location.lng();
        self.props.updateParentState(lat, lng);
    } else {
        let geocoder = new google.maps.Geocoder();
        geocoder.geocode({'address': place.name}, function(results, status) {
            if (status === google.maps.GeocoderStatus.OK) {
                const lat = results[0].geometry.location.lat();
                const lng = results[0].geometry.location.lng();
                self.props.updateParentState(lat, lng);
            }
        });
    }
}