Как установить переменную с помощью geolocation.getCurrentPosition
Это связано с этим сообщением, но отличается тем, что я пытаюсь понять, почему я не могу установить внешнюю переменную изнутри geolocation.getCurrentPosition
Я не могу получить от него какое-либо возвращаемое значение, и я не могу установить из него значение. Я могу получить доступ к объекту позиции только изнутри. Я пробовал пройтиthis
.
Я раздвоил скрипку derek-朕會功夫 и изменил ее: https://jsfiddle.net/TwoFistedJustice/c3qr29L7/1/
Вот еще одна скрипка, основанная на этом посте:
https://jsfiddle.net/TwoFistedJustice/yu8Lzjvx/4/
Я очень озадачен.
Может ли кто-нибудь помочь мне:
- Понять, что происходит за кулисами, чтобы заставить его вести себя именно так.
- Узнайте, как установить переменную во внешней области изнутри 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/