0

这与这篇文章有关,但不同之处在于我试图理解为什么我不能从 geolocation.getCurrentPosition 内部设置外部变量

我似乎无法从中获得任何类型的返回值,也无法从中设置值。我只能从里面访问位置对象。我试过传入this

我叉了derek-朕会功夫的小提琴并修改了它: https ://jsfiddle.net/TwoFistedJustice/c3qr29L7/1/

这是基于这篇文章的另一个小提琴:

https://jsfiddle.net/TwoFistedJustice/yu8Lzjvx/4/

我很困惑。

有人可以帮我:

  1. 了解幕后发生的事情,使其以这种方式运行。
  2. 了解如何从 getCurrentPosition() 内部设置外部范围内的变量。
4

1 回答 1

0

我一直在阅读调用堆栈和回调队列。而且我认为一直困扰我的行为与 Javascript 如何处理各种堆栈和队列有关。Jake Archibald 的这篇文章有助于清理它,尽管一次吸收所有内容有点多。

如果我添加一个带有任何延迟值的 setTimeout,即使是 0,foo 通常也会改变。对于接近零的值,它会有所不同。

setTimeout(function(){
console.log('SetTimeout\n -  Foo only changes if this goes AFTER the Promise\n foo:', foo)}

, 0);

这是一个源自其他的小提琴,它更清楚地显示了正在发生的事情。https://jsfiddle.net/TwoFistedJustice/arkqb0x8/71/

于 2020-03-06T22:40:58.547 回答