У меня есть следующая асинхронная функция
export default async function getUserNames(id: string[]): Promise<string[]> {
let userNames: string[] = [];
// We do some stuff here like calling a service, etc...
return userNames;
}
В другом файле для машинописи я импортирую функцию getuserNames и пытаюсь вызвать ее следующим образом:
const promiseResult = getUserNames(idList)
.then(result => {
return result;
})
.catch(error => {
return undefined;
});
if (promiseResult) {
// Do something else here.
}
ОднакоТип обещания - Promise вместо string [], что я и ожидал.Как я могу вызвать функцию getuserNames, и когда это будет сделано, фактическая строка [] будет возвращена переменной обещания?
РЕДАКТИРОВАТЬ Допустимо ли делать что-то подобное?
let varB: string[];
const promiseResult = getUserNames(idList)
.then(result => {
varB = result;
})
.catch(error => {
varB = undefined;
});
if (varB) {
// Do something else here.
}
Наконец, обратите внимание, что функция, вызывающая getUserNames, не определена как асинхронная, и я не могу это изменить.