MCPcopy Create free account
hub / github.com/scriptscat/scriptcat / wrappedHandler

Method wrappedHandler

packages/message/message_queue.ts:136–153  ·  view source on GitHub ↗
(message: T)

Source from the content-addressed store, hash-verified

134 } else {
135 // 有中间件,需要包装处理函数
136 const wrappedHandler = async (message: T) => {
137 let index = 0;
138
139 const next = async (): Promise<void> => {
140 if (index < this.middlewares.length) {
141 const middleware = this.middlewares[index++];
142 const result = middleware(fullTopic, message, next);
143 if (result instanceof Promise) {
144 await result;
145 }
146 } else {
147 // 所有中间件都执行完毕,执行最终的处理函数
148 handler(message);
149 }
150 };
151
152 await next();
153 };
154
155 return this.messageQueue.subscribe(fullTopic, wrappedHandler);
156 }

Callers

nothing calls this directly

Calls 1

nextFunction · 0.85

Tested by

no test coverage detected