Потому что обращение к VK.api - асинхронная операция, то есть на момент вывода в консоль данных у Вас еще нет
Но так как объекты в js всегда ссылки, консоль пользуется этим и выводит всегда текущее состояние объекта, на момент когда вы разворачиваете дерево объекта в консоли, ответ уже получен и данные в нем есть
UPD:function VKApiCallAsync(method, params) {
return new Promise(function(resolve) {
VK.Api.call(method, params, resolve);
});
}
var groupsList = [-51016572, -33393308];
Promise.all(groupsList.map(function(id) {
return VKApiCallAsync('wall.get', {
owner_id: id,
count: 50,
offset: 0,
filter: 'owner'
}).then(function(res) {
return {
groupId: id,
postId: res.response.map(function(post) { return post.id; })
};
});
})).then(function(groupWall) {
console.log(groupWall, groupWall[0].postId);
});