То, что вы видите, ожидается в JavaScript и не имеет ничего общего с используемым вами Firebase SDK. В JavaScript функции, возвращающие обещание, являются асинхронными и возвращаются немедленно, прежде чем обещание будет выполнено или отклонено. Вы должны знать, что then
также асинхронно возвращает обещание. Он не блокирует выполнение вашего кода и не дожидается выполнения обещания. Ваш код будет продолжать выполняться после любых then
или catch
.
В ваших c случай, ваша вторая строка журнала будет немедленно напечатана с начальным значением пустой строки imageUrl
. Функция обратного вызова, которую вы предоставляете then
, будет вызвана через некоторое время , после того как обещание, возвращаемое getImage
, будет выполнено со значением.