Получить значение из обратного вызова внутри нового класса в Javascript - PullRequest
0 голосов
/ 23 января 2019

Я столкнулся с проблемой, когда Я не могу получить нужное мне значение из обратного вызова, который передается в экземпляр класса 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 -и данные внедряются каким-то оптимизированным способом вглубь объекта.

...