Как получить значение в асинхронной функции? - PullRequest
0 голосов
/ 09 мая 2019

Я попробовал две функции в (асинхронная функция, нормальная функция) в узле js.normal функция успешно вернула значение. Но асинхронная функция не может вернуть значение. Как это исправить

нормальная функция

index.js

var sample_data = require('./product')

const data = sample_data
console.log(data)

product.js

function sample()
{
    console.log("hai")
    return "hello"
}

module.exports = sample

асинхронная функция

index.js

var sample_data = require('./product')

const data = sample_data
console.log(data)

product.js

async function sample()
{
    console.log("hai")
    return "hello"
}

module.exports = sample

нормальная функция

Ожидаемый результат
hai
привет

асинхронная функция

Ожидаемый выход
hai
привет

но я получил вывод
[AsyncFunction: sample]

Ответы [ 2 ]

1 голос
/ 09 мая 2019

Существует два способа

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

sample().then(result => console.log(result));

ИЛИ await для ожидания и получения результатов до выполнения следующего оператора

var result = await sample();
console.log(result);
0 голосов
/ 09 мая 2019

асинхронные функции переносят возвращаемое значение в обещание, чтобы увидеть результаты, которые вам нужны .then ()

   sample().then(result=>{console.lot(result)});
...