Способ работы subscribe
не зависит от того, где вы размещаете console.log
.Причина, по которой вы испытываете это, связана с асинхронным характером операции, выполняемой кодом.
getCategory()
- это функция, которая переносит вызов http, поэтому вам необходимо подписаться на возвращаемое значение.Подписка по существу означает:
Идите и делайте все, что вам нужно, когда вы закончите, выполните то, что находится внутри блока подписки.Но пока я жду, продолжите с остальным кодом
Следовательно, размещение console.log
вне подписки означает, что оно будет выполнено до асинхронногооперация завершена.