【发布时间】:2018-12-22 08:20:24
【问题描述】:
我想创建一个在 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<{}>。
- 什么
Promise<{}>? - 更一般地说,我如何让这个引用
Promise<string>?我是不是误会Trigger Promise when an event fires?
【问题讨论】:
-
可能是
return new Promise<string>(...);? -
呃,刚刚发现 stackoverflow.com/questions/36967176/what-is-type 推断类型中的 {} 是否总是编译器问题?
-
可能。我还没有那么使用 TypeScript,但如果你愿意,我可以查看全局
.d.ts文件以了解这个特定缺点的解释。 -
@PatrickRoberts 在那种情况下,我想知道为什么 TS 不能在这里推断类型,以及为什么它在推断的类型中放了一个奇怪的 {} ...(对不起,这应该已回复
Promise<string>的建议) -
FWIW here's the issue 讨论了这个限制。
标签: javascript node.js typescript events promise