В вашем коде dict['sample']
является асинхронной функцией.Если вы хотите получить значение из этой функции, вы должны вызвать эту асинхронную функцию, которая затем возвращает обещание.Затем вы можете использовать .then()
или await
в этом обещании, чтобы получить значение из него.
И ваша функция data()
НЕ является функцией async
, поэтому вам не следует использовать await
наэто.
Чтобы разбить это на несколько шагов, чтобы лучше понять это:
function data() {
return "hai"
}
let dict = {
sample: async () => {
return data();
}
};
let fn = dict['sample'];
fn().then(val => {
console.log(val);
});
Или, если бы все это было внутри функции async
, вы могли бы использовать await
вместо.then()
чтобы получить значение.Итак, если вам нужен однострочный для этого:
console.log(await (dict['sample']()));
В любом случае, функция async
всегда возвращает обещание (при вызове этой функции) и два способа получения значенияс .then()
или await
.