Как отметил @Kolban, вы не принимаете и не отклоняете обещание, которое создаете в getTextResponse()
.
Похоже, что var result = await getTextResponse(...)
вызов неверен. Вы определили getTextResponse()
для приема двух параметров, но передаете их три (первые два плюс функция анонимной стрелки). Но эта дополнительная функция никогда не используется / ссылается.
Я бы вообще не смешивал явные обещания с async / await и определенно избегал бы смешивания async / await с передачей обратных вызовов.
Я не знаю деталей API, который вы используете, но если API уже поддерживает обещания, тогда вы сможете сделать что-то вроде этого:
const getTextResponse = async (mySheet, myRecord) => {
try {
return await base(mySheet).find(myRecord)
}
catch(err) {
console.error(err);
return;
}
)};
...
app.intent('GetDatabaseField-Intent', async (conv) => {
const sheetTrans = "NameOfSheet";
const recordFirst = "ID_OF_RECORD";
var result = await getTextResponse(sheetTrans, recordFirst)
myResponse = result.fields.en;
conv.ask(myResponse);
});
...
Почти все обещанные основанные библиотеки или API могут использоваться с async / await, поскольку они просто используют Promises под капотом. Все после await становится обратным вызовом, который вызывается, когда ожидаемый метод разрешается успешно. При любом неудачном разрешении возникает ошибка PromiseRejected, которую вы обрабатываете с помощью блока try / catch.