javascript - 什么是 Promise<{}>?

标签 javascript node.js typescript events promise

我想创建一个在 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<{}> .

  1. 多棒啊Promise<{}>
  2. 更一般地说,我如何才能引用 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/

相关文章:

javascript - Google 如何隐藏搜索结果的 HTML 来源?

javascript - CSS 滑动下划线

node.js - Heroku 上的套接字 io

angular - 你能在 Angular 2(使用 Typescript)中返回一个 observable 作为 promise 吗?

Javascript自动选择下拉菜单调试错误

javascript - 在新进程中生成 Grunt 任务

node.js - MongoDB:没有锁定?

javascript - TypeScript 编译为 commonjs 和 umd

angular - Ionic 2 中的 RecyclerView 等效项

javascript - 收到错误bundle.js :39454 Uncaught TypeError: Cannot read property 'email' of undefined using MERN stack