【发布时间】:2020-12-29 22:12:49
【问题描述】:
我的 client-websocket 提供了为某些事件注册回调的方法,例如当连接打开或关闭时。在这些回调中,我想解决一个承诺,以便我可以await 外部事件的发生。我在单元测试中使用它。我想要这样的东西:
let wsOnOpenPromise = new Promise<void>(resolve => { /* ??? */ });
let wsOnClosePromise = new Promise<void>(resolve => { /* ??? */ });
const ws = new WebsocketBuilder(url)
.onOpen((i, e) => { /* resolve wsOnOpenPromise here */ })
.onClose((i, e) => { /* resolve wsOnClosePromise here */ })
.build();
await wsOnOpenPromise;
shutdownServer(); /* Shutdown the server here, the on-close event should fire */
await wsOnClosePromise;
我该怎么做?看来我需要先定义承诺,然后在回调中定义 resolve 它们,以便以后可以像代码中所示那样 await 它们。
【问题讨论】:
-
resolve => { resolve() })
标签: typescript promise async-await