解决使用Promise的功能

我有以下异步功能


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的函数未定义为异步,并且我无法对其进行更改。


至尊宝的传说
浏览 298回答 3
3回答

慕田峪4524236

如果您想访问承诺所解决的价值,则唯一的选择是1)使用promise的.then回调getUserNames(idList)&nbsp; .then(result => {&nbsp; &nbsp; // Do something else here.&nbsp; })2)将代码放入异步函数中,并使用await关键字:async function someFunction () {&nbsp; const result = await getUserNames(idList);&nbsp; // Do something else here.}注意,由于所有异步函数都返回promise,因此在此示例中someFunction将返回promise。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript