Во всех этих сценариях outerScopeVar
изменяется или назначается значение асинхронно или происходит в более позднее время (ожидание или прослушивание какого-либо события), для которого текущее выполнение не будет ждать. Таким образом, все эти случаи текущего потока выполнения приводит к outerScopeVar = undefined
Давайте обсудим каждый пример (я обозначил часть, которая называется асинхронно или задерживается для возникновения некоторых событий):
1.
Здесь мы регистрируем eventlistner, который будет выполнен на этом конкретном событии. Загрузите изображение. Затем текущее выполнение будет продолжено со следующими строками img.src = 'lolcat.png';
и alert(outerScopeVar);
, между тем событие может не произойти. т. е. funtion img.onload
ожидают, что упомянутое изображение будет загружаться, как можно скорее. Это будет происходить во всем следующем примере: событие может отличаться.
2.
Здесь событие тайм-аута играет роль , который вызывается обработчиком по истечении указанного времени. Здесь 0
, но все же он регистрирует асинхронное событие, которое будет добавлено в последнюю позицию Event Queue
для выполнения, что делает гарантированную задержку.
3.
На этот раз ajax обратный вызов.
4.
Узел можно рассматривать как король асинхронного кодирования. Если отмеченная функция зарегистрирована как обработчик обратного вызова, которая будет выполнена после чтения указанного файла.
5.
Очевидное обещание (что-то будет сделано в будущем) является асинхронным. см. . Каковы различия между отложенными, обещаниями и будущими в JavaScript?
https://www.quora.com/Whats-the-difference-between-a -promise-и-обратный вызов-в-Javascript
Это обычно происходит, когда вы добавили некоторые синтаксически неправильные символы в файл XML в самой первой строке
, который всегда должен быть
<?xml version="1.0" encoding="utf-8"?>
(пролог)
Я не вижу ничего особенного для AndroidManifest. Может быть, один из ваших файлов проекта поврежден?
Кажется, это тот же вопрос, что и этот вопрос: Проблема с Android Studio - преждевременный конец файла
Проверьте первую строку xml-файлов в папке .idea. Удалите их содержимое, если ошибка указана intellij. Они будут восстановлены intellij. И тогда все будет хорошо работать.
Просто Open Workspace.XMl и проверьте, есть ли какой-либо In-Valid XML-контент. Или удалите все из Workspace.xml и снова скомпилируйте.