Typescript,自动等待所有 Promise 返回函数调用

Typescript, auto await all Promise-returning function calls

提问人:Vasilii Rogin 提问时间:3/12/2017 最后编辑:Vasilii Rogin 更新时间:9/2/2023 访问量:1073

问:

我正在使用“异步”功能,有时我忘记为内部调用添加“await”:

async function doThreeSteps () => {
    await firstPromiseReturningFunc();
    nonAsyncFunction();
    secondPromiseReturningFunc(); //Error here! Need to wait until this call resolves
    someOtherStepWhichReliesOnSuccessfullEndingOfPreviousFunction();
}

TypeScript 应该可以警告此类错误,因为 TS 知道每个函数返回什么类型,是 promise 还是 value。 我想让 TS 警告我这种情况。可能吗?

TypeScript async-await

评论

0赞 Aleksandr Petrovskij 3/12/2017
如果定义 type ,编译器应抛出错误x3
0赞 Saravana 3/12/2017
始终向变量添加类型。消除了大多数这些错误。
0赞 Vasilii Rogin 3/13/2017
对不起,现在更新了。您关于变量类型的建议是 100% 正确的,但不适合更新问题。

答:

5赞 Joel Day 3/13/2017 #1

TypeScript-Eslint (https://typescript-eslint.io) 具有“no-floating-promises”规则。它要求对从函数(如 .then、.catch、await、assignment 或 return)返回的 Promise 执行某些操作