返回Promise <void>的异步函数是否在块结尾处有隐式返回?

时间:2017-05-27 12:36:36

标签: javascript typescript es6-promise

public async demo(): Promise<void> {
    // Do some stuff here
    // Doing more stuff
    // ... 
    // End of block without return;
}

TypeScript / ES6中块的末尾是否隐含地返回了新的Promise<void>

布尔类型示例:

class Test {

    public async test(): Promise<boolean> {
        return true;
    }

    public main(): void {

        this.test().then((data: boolean) => {

            console.log(data);

        });

    }

}

new Test().main();

这会将true打印到控制台,因为异步函数内的return会创建一个新的Promise,并使用返回的数据调用resolve()Promise<void>会怎样?

1 个答案:

答案 0 :(得分:8)

  

承诺会发生什么

返回void的函数也是如此。 void函数返回undefinedPromise<void>解析为undefined

function foo(){}; console.log(foo()); // undefined
async function bar(){}; bar().then(res => console.log(res)); // undefined