为了账号安全,请及时绑定邮箱和手机立即绑定

解决使用Promise的功能

解决使用Promise的功能

至尊宝的传说 2021-03-30 13:10:45
我有以下异步功能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。


查看完整回答
反对 回复 2021-04-08
  • 3 回答
  • 0 关注
  • 297 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号