从Javascript中新类内的回调内部获取值

时间:2019-01-22 23:02:34

标签: javascript class scope closures

我遇到了一个问题,即我无法从传递给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,是因为我想要一种实时了解googlePlaces API的结果如何使DOM发生变异的方法。由于我无法控制该标记-这似乎是下一件好事。

我已经探索了使用AutoCompleteService的方法-但这将要求我们使用AutoCompleteService调用而不是AutoComplete API端点重新实现现有的googlePlaces。

我在这里使用的方法与结果完美同步。

我不认为我曾经遇到过-和这里的区别在于,该值是在该类的实例内部设置的。

如何允许在类内部检索的值在处理它的类内部的函数范围之外定义?

我们正在这样调用googlePlaces API:

const autoComplete = new this.googleApi.places.Autocomplete(
  this.props.inputRef,
  INIT_OPTIONS
);

调用后返回一个对象-我可以看到正在发出请求-每次搜索后都有新数据-但没有干净的JSON响应-数据以某种优化的方式嵌入对象的深处。

0 个答案:

没有答案