Я столкнулся с проблемой, когда Я не могу получить нужное мне значение из обратного вызова, который передается в экземпляр класса JavaScript .
let value;
const mutationObserver = new MutationObserver((mutations) => {
return values.map((mutation) => {
value = mutation.target.childElementCount;
return value;
})
})
console.log("value", value) <= undefined
const element = document.getElementsByClassName('pac-container')[0];
if (element) {
mutationObserver.observe(element, {
childList: true,
subtree: true
});
}
Я использую MutationObserver, потому что мне хотелось бы узнать в реальном времени, как DOM видоизменяется в результате использования API googlePlaces.Так как я не контролирую эту разметку - это похоже на следующую лучшую вещь.
Я исследовал использование AutoCompleteService - но это потребовало бы, чтобы мы повторно реализовали существующие googlePlaces, используя вызов AutoCompleteService вместо конечной точки API AutoComplete.
Подход, который я здесь использую, идеально синхронизирован с результатами.
Я не думаю, что сталкивался раньше - и разница здесь в том, что значение устанавливается внутри этого экземпляра класса.
Как вы разрешаете определять полученное значение внутри класса вне области действия функции внутри класса, в котором оно обрабатывается?
Мы делаем вызовв API GooglePlaces следующим образом:
const autoComplete = new this.googleApi.places.Autocomplete(
this.props.inputRef,
INIT_OPTIONS
);
Объект возвращается после вызова - и я вижу, что выполняется запрос - и после каждого поиска появляются новые данные, но нет чистого ответа JSON -и данные внедряются каким-то оптимизированным способом вглубь объекта.