为什么打字稿承诺无效

时间:2019-05-26 08:08:21

标签: typescript

我正在浏览此博客,以创建signature

他在这里使用了这样的虚空

export const start = (port: number): Promise<void> => {
    const server = http.createServer(app);

    return new Promise<void>((resolve, reject) => {
        server.listen(port, resolve);
    });
};

我不确定他们为什么在这里使用void? void通常意味着该函数将不返回任何内容。

而我认为promise总是会返回一些东西(即它将解决或拒绝)。

那么在这里使用void的目的是什么?

1 个答案:

答案 0 :(得分:1)

类型是指承诺解析为的值。如果解析为空,则该类型为空。例如:

new Promise<string>((resolve, reject) => {
    resolve("hello");   // resolves into a string
});

new Promise<boolean>((resolve, reject) => {
    resolve(true);   // resolves into a boolean
});

new Promise<void>((resolve, reject) => {
    resolve();   // resolves into undefined/nothing/void
});

大概server.listen()方法不使用任何参数调用回调,因此promise的类型为空。