【发布时间】:2023-02-14 17:55:00
【问题描述】:
我是 TypeScript 的新手,我有一个如下所示的异步函数。有人可以解释它的作用以及resolve 来自哪里吗?我希望我为此提供了足够的信息。
async function SendMessage<T extends WorkerResponse>(msg: { id: number }): Promise<T>
{
const response = await new Promise<WorkerResponse>(resolve =>
{
waitingMessages.set(msg.id, resolve);
worker.postMessage(msg);
});
return response as T;
}
当我将鼠标悬停在变量上时,我得到这些:
(parameter) resolve: (value: WorkerResponse | PromiseLike<WorkerResponse>) => void
const waitingMessages: Map<number, (response: WorkerResponse) => void>
【问题讨论】:
-
这是一个 JavaScript 问题。查找承诺。
-
resolve是 Promise 概念的一部分。你可以阅读更多关于它的信息here -
也许作者应该从更底层的基础开始:developer.mozilla.org/en-US/docs/Glossary/Callback_function
-
它所做的是将消息 ID 添加到消息队列,然后通过 Web Worker 发送它。你可以阅读更多关于 web workers here
标签: javascript typescript typescript-generics