Как установить переменную с помощью geolocation.getCurrentPosition

Это связано с этим сообщением, но отличается тем, что я пытаюсь понять, почему я не могу установить внешнюю переменную изнутри geolocation.getCurrentPosition

Я не могу получить от него какое-либо возвращаемое значение, и я не могу установить из него значение. Я могу получить доступ к объекту позиции только изнутри. Я пробовал пройтиthis.

Я раздвоил скрипку derek-朕會功夫 и изменил ее: https://jsfiddle.net/TwoFistedJustice/c3qr29L7/1/

Вот еще одна скрипка, основанная на этом посте:

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

Я очень озадачен.

Может ли кто-нибудь помочь мне:

  1. Понять, что происходит за кулисами, чтобы заставить его вести себя именно так.
  2. Узнайте, как установить переменную во внешней области изнутри getCurrentPosition().

1 ответ

Я читал о стеке вызовов и очереди обратных вызовов. И я понимаю, что поведение, которое меня сбивает с толку, связано с тем, как Javascript обрабатывает различные стеки и очереди. Эта статья Джейка Арчибальда помогает прояснить это, хотя это немного, чтобы усвоить все сразу.

Если я добавлю 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/70/

Другие вопросы по тегам