什么是Promise <{}>?

时间:2018-07-13 23:03:58

标签: javascript node.js typescript events promise

我想创建一个在WebSocket连接时解决的承诺。

import * as WebSocket from "ws"

let ws = WebSocket("ws://example.com")

function foo(echo: string) {
    return new Promise((resolve, reject) => ws.once("open", () => resolve(echo)));
}

在VS Code中,foo函数推断为产生Promise<{}>

  1. 什么是Promise<{}>
  2. 更一般而言,如何获得此信息来引用Promise<string>?我误解了Trigger Promise when an event fires吗?

1 个答案:

答案 0 :(得分:4)

泛型将{}(空对象)作为default parameter value

Promise是通用名称。由于TypeScript的限制,由于无法从resolve参数推断出泛型类型,因此默认情况下为{}或空对象。

应该是:

function foo(echo: string) {
    return new Promise<string>((resolve, reject) => ws.once("open", () => resolve(echo)));
}