我想创建一个在 WebSocket 连接时结算的 promise 。
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 ?
最佳答案
泛型具有 {}
(空对象)作为 default parameter value .
Promise
是一个泛型。由于 TypeScript 的限制,无法从 resolve
参数推断泛型类型,因此默认情况下它是 {}
或空对象。
应该是:
function foo(echo: string) {
return new Promise<string>((resolve, reject) => ws.once("open", () => resolve(echo)));
}
关于javascript - 什么是 Promise<{}>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51333807/