在 Typescript 中正确使用 Async

Correct Usage of Async in Typescript

打字稿中 async 关键字的正确用法是什么?我的理解是允许在函数体中使用await。具体来说,

async returnPromise() : Promise<any> {} 

export const interfaceFunction() = async () {
    return returnPromise();
}

// Usage in another module
const returnValue = await interfaceFunction();

在这种情况下是否明确要求将 interfaceFunction 声明为 async?无论是否使用 async 关键字,代码都可以工作(并且 return 类型在这两种情况下都保持为 Promise)。

我不是假装要完整的答案。

但另一个选择是 async 保证函数 returns 一个承诺,并使结果比'able。当只有部分功能可等待时,它会有很大帮助。请参阅下面的示例。

function nPromice(){
    return Promise.resolve(2);
}
async function  n(){
    if(Math.random() > 0.5 ){
        return await nPromice(); 
    } else {
        return 1;
    }
}
n().then(x => console.log(x));

Playground Link

您的理解是正确的!

Is the interfaceFunction explicitly required to be declared as async in this case?

没有。如果你只是 return 一个 Promise 你不需要将方法标记为 async。如果你想await其中的东西,请标记一个方法async