Я пытаюсь вернуть асинхронную функцию, но вместо [object Object]
я получаю либо promise: < { PENDING } >
, либо [object Promise]
. Я пытался вернуть значение с помощью Promise.resolve(value)
, Promise.resolve().then(return value)
,return new Promise((resolve, reject) => {resolve(value)}
от верхнего уровня до нижнего уровня мой код выглядит следующим образом:
//Top-Level
const getNext = require('getNext');
const next = getNext({
page,
value,
name,
id,
});
//getNext
const controllerMap = {
intro: introController
};
async function getNext({ page, value, name, id}) {
const controller = controllerMap[name];
return await controller({
page,
value,
name,
id
});
}
// Controller
async function introController({ page, value, id }) {
switch(page)
case 10:
// Do something async ie:
await db.query
default: return intro[page]
};
Если я снимаю async
и await
с функций и извлекаю свой низкий уровень db.query
из дела controller
в его собственное async function
Я просто получил promise: < { PENDING } >
, так что я думаю, что это потому, что функции верхнего уровня не ждут его разрешения.Однако, когда я делаю эти функции асинхронными, они возвращают обещания для моих статических данных.У меня проблемы с наложением головы на эти вложенные обещания / асинхронные функции.