Как прочитать значение Promise из вызова функции

DateTime dt = DateTime.ParseExact("05/02/2014","MM/dd/yyyy",CultureInfo.InvariantCulture);
1
задан matmik 3 March 2019 в 22:34
поделиться

3 ответа

С обещаниями вы должны использовать / извлекать данные, используя .then (); поэтому

getInfo().then((data) => console.log(data));

Есть ли конкретная причина, по которой вам нужно использовать обещание? Ваш пример кажется подходящим для простого использования функции setTimeout

0
ответ дан xenocratus 3 March 2019 в 22:34
поделиться

Значение, которое возвращает обещание, передается в качестве первого параметра в функцию .then.

Смотрите: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then

В вашем случае это может be: getInfo (). then (data => console.log (data));

Надеюсь, это поможет.

0
ответ дан vincent 3 March 2019 в 22:34
поделиться

Есть несколько способов сделать это.

Async / await

JavaScript ввел ключевые слова async и await несколько лет назад. Это специальный синтаксис, упрощающий асинхронное программирование. Вы можете сделать свои функции async и использовать await при их вызове. Это в основном оборачивает весь . then() беспорядок.

async function promiseTest(data) {
    const delay = 200;
    return new Promise(resolve => setTimeout(() => resolve(data), delay));
}


async function getInfo() {
    return await promiseTest(require('./allData.json'));
}

Затем вы можете получить результат getInfo(), ожидая его:

console.log(await getInfo());

Вот некоторые чтения, которые должны вам помочь:

https : //javascript.info/async-await https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Instructions/async_function

.then ()

Вы также можете пойти по старому пути, используя затем:

function promiseTest(data) {
    const delay = 200;
    return new Promise(resolve => setTimeout(() => resolve(data), delay));
}


function getInfo() {
    return promiseTest(require('./allData.json'));
}

getInfo().then(data => console.log(data));

Передать обратный вызов

Вы можете передать обратный вызов в свой метод getInfo. [1121 ]

function promiseTest(data) {
    const delay = 200;
    return new Promise(resolve => setTimeout(() => resolve(data), delay));
}


function getInfo(callback) {
    promiseTest(require('./allData.json')).then(data => callback(data));
}

getInfo(data => console.log(data));
0
ответ дан Antoine Boisier-Michaud 3 March 2019 в 22:34
поделиться
Другие вопросы по тегам:

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