Promise {<resolved>: Array(3)}
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: Array(3)
0: {msg1: "Hello world"}
1: {msg2: "Hello world1"}
2: {msg3: "Hello world2"}
length: 3
__proto__: Array(0)
Нужно достать вот эти msg. Пытался через точку получить и через квадратные скобки, ничего не получается
Ваш объект - это обещание (промис, Promise), настоящее значение спрятано у него внутри слота [[PromiseValue]]
. Доступа к этому слоту напрямую нет, выцепить его можно только двумя способами.
Способ первый - метод .then
:
v.then(data => {
console.log(data[0].msg1);
console.log(data[1].msg2);
console.log(data[2].msg3);
})
Способ второй - через await
внутри асинхронного метода:
data = await v;
console.log(data[0].msg1);
console.log(data[1].msg2);
console.log(data[2].msg3);
Но не пытайтесь "обмануть" систему и вытащить значение раньше чем следует! Обещание - это абстракция значения, которого ещё не существует, но оно будет доступно когда-то в будущем. Именно поэтому и не существует способа "достать" из него значение прямо сейчас.
Если вы попытаетесь сделать как-то вот так:
let result;
v.then(data => result = data); // не делайте так!
console.log(result);
то вы обнаружите, что ничего не получилось, переменная result осталась неопределенной.
Почему так получается можно увидеть, если посмотреть на порядок выполнения программы:
let result; // 1
v.then(data => {
result = data; // 4
}) // 2
console.log(result); // 3
Сначала выполняется 1, потом выполняется вызов then
(но переданная функция ещё не была вызвана!), наконец выполняется 3 и т.д. И только много позже, когда наступит какое-то внешнее событие, а управление вернется очереди событий, будет выполнена строка 4.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
На странице используется графика построенная с использованием threejs, пока графика строится хотел использовать прелоадер на css (крутилка, вертелка)
Нужно через 5 секунд после загрузки страницы выполнить javascript файл, который находиться на удаленном сервере, и доступен по ссылке:
Товарищи vue spa строители! Столкнулся с проблемой следующего содержания: мне необходимо динамически подгружать на страницу компонент имя...