我有以下异步功能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. }但是,promiseResult类型是Promise,而不是我期望的string []。如何调用getuserNames函数,完成后,实际的string []返回给promiseResult变量吗?编辑 接受这样的事情被接受吗?let varB: string[];const promiseResult = getUserNames(idList) .then(result => { varB = result; }) .catch(error => { varB = undefined; });if (varB) { // Do something else here. }最后,请注意,调用getUserNames的函数未定义为异步,并且我无法对其进行更改。
3 回答

慕田峪4524236
TA贡献1875条经验 获得超5个赞
如果您想访问承诺所解决的价值,则唯一的选择是
1)使用promise的.then回调
getUserNames(idList)
.then(result => {
// Do something else here.
})
2)将代码放入异步函数中,并使用await关键字:
async function someFunction () {
const result = await getUserNames(idList);
// Do something else here.
}
注意,由于所有异步函数都返回promise,因此在此示例中someFunction将返回promise。
添加回答
举报
0/150
提交
取消