MCPcopy Index your code
hub / github.com/ChatLab/ChatLab / sendToWorker

Function sendToWorker

apps/desktop/main/worker/workerManager.ts:194–227  ·  view source on GitHub ↗

* 发送消息到 Worker 并等待响应

(type: string, payload: any, options: number | WorkerRequestOptions = {})

Source from the content-addressed store, hash-verified

192 * 发送消息到 Worker 并等待响应
193 */
194function sendToWorker<T>(type: string, payload: any, options: number | WorkerRequestOptions = {}): Promise<T> {
195 return new Promise((resolve, reject) => {
196 if (!worker) {
197 try {
198 initWorker()
199 } catch (error) {
200 reject(new Error('Worker not initialized'))
201 return
202 }
203 }
204
205 const timeoutMs = typeof options === 'number' ? options : (options.timeoutMs ?? 60000)
206 const restartOnTimeout =
207 typeof options === 'number'
208 ? isRestartableReadOnlyRequestType(type)
209 : (options.restartOnTimeout ?? isRestartableReadOnlyRequestType(type))
210 const requestWorker = worker!
211 const id = `req_${++requestIdCounter}`
212
213 const timeout = setTimeout(() => {
214 if (pendingRequests.has(id)) {
215 pendingRequests.delete(id)
216 reject(new Error(`Worker request timeout: ${type}`))
217 if (restartOnTimeout) {
218 terminateWorkerAfterQueryTimeout(type, requestWorker)
219 }
220 }
221 }, timeoutMs)
222
223 pendingRequests.set(id, { resolve, reject, timeout, restartOnTimeout })
224
225 requestWorker.postMessage({ id, type, payload })
226 })
227}
228
229/**
230 * 发送消息到 Worker 并等待响应(带进度回调)

Callers 15

closeWorkerFunction · 0.85
closeWorkerAsyncFunction · 0.85
queryFunction · 0.85
pluginQueryFunction · 0.85
getAvailableYearsFunction · 0.85
getMemberActivityFunction · 0.85
getHourlyActivityFunction · 0.85
getDailyActivityFunction · 0.85
getWeekdayActivityFunction · 0.85
getMonthlyActivityFunction · 0.85
getYearlyActivityFunction · 0.85

Calls 7

initWorkerFunction · 0.85
setTimeoutFunction · 0.85
setMethod · 0.80
deleteMethod · 0.65
postMessageMethod · 0.65

Tested by

no test coverage detected