You are logging something that's set later so the preview shows an empty array but you can expand it.
The log will show the item as it is right now; not as it is when you log it.
var arr = [];
console.log(arr);//shows [] but when you expand it it shows items
arr.push({name:'john'});
If you want to see an object's values at the time you are logging the object and plan to mutate it after the log then you can do the following:
console.log(JSON.stringify(object,undefined,2);
Your objects.push(response[i]);
statement is in a callback and that callback is probably called after your console.log(objects.length);
you can proof that by adding another log:
var objects = [];
this.get().subscribe(
response => {
console.log('second log')
for (var i = 0; i < response.length; i++) {
objects.push(response[i]);
}
}
);
console.log("first log",objects.length);
If you have a value that resolves once at a later time then you could use Promises but it looks like you subscribe to an event that can resolve multiple times so your response
will only be available in the callback.