Что действительно удваивает скобки, средние в JavaScript и как получить доступ к ним

Ситуация

У меня есть следующая функция, которая использует Обещание.

var getDefinitions = function() {
    return new Promise(function(resolve) {
        resolve(ContactManager.request("definition:entities"));
    });
}

var definitions = getDefinitions()

Содержание definitions :

Promise {
    [[PromiseStatus]]: "resolved",
    [[PromiseValue]]: child
}

Доступ PromiseValue свойство непосредственно возвращается неопределенный

var value = definitions.PromiseValue; // undefined

Вопрос

Что делает двойные скобки [[ ]] средний, и как я получаю значение [[PromiseValue]].

57
задан 2 July 2019 в 11:56

3 ответа

Вот способ получить доступ PromiseValue (promise):

  let promises = definitions;

  Promise.all(promises).then((promise) => {
    console.log('promises = ', promises);

    console.log('promise = ', promise);
  });
0
ответ дан 1 November 2019 в 16:40

Попытайтесь использовать , ждут .

Вместо

var value = definitions.PromiseValue 

использование

var value =  await definiton;

Это могло бы решить Вашу цель путем получения значения обещания.

Примечание, которые ждут, может только использоваться в асинхронных функциях, и это - функция ES2016.

-1
ответ дан 1 November 2019 в 16:40

Маленький variation/extenstion к решениям обеспечил

Для случая, когда возвращенным ответом является HTML, не JSON

fetch('http://localhost:3000/hello')
  .then(response => response.text())
  .then(data => {
    // you can see your PromiseValue data here
    console.log(data)
  })
-3
ответ дан 1 November 2019 в 16:40

Другие вопросы по тегам:

Похожие вопросы: