MiddlewareSet class

一组 Middleware 插件。

注解

集本身是中间件,因此可以轻松打包一组中间件,这些中间件可以组合成具有单个 adapter.use(mySet) 调用的适配器,甚至可以使用 set.use(mySet)将中间件集打包到另一个中间件集中。

const { MiddlewareSet } = require('botbuilder');

const set = new MiddlewareSet();
set.use(async (context, next) => {
   console.log(`Leading Edge`);
   await next();
   console.log(`Trailing Edge`);
});

构造函数

MiddlewareSet((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

创建新的中间件集实例。

方法

onTurn(TurnContext, () => Promise<void>)

处理传入活动。

run(TurnContext, () => Promise<void>)

连续执行一组中间件。

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

向集注册中间件处理程序(s)。

构造函数详细信息

MiddlewareSet((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

创建新的中间件集实例。

new MiddlewareSet(middlewares: (context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

参数

middlewares

(context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]

要注册的一个或多个中间件处理程序。

方法详细信息

onTurn(TurnContext, () => Promise<void>)

处理传入活动。

function onTurn(context: TurnContext, next: () => Promise<void>): Promise<void>

参数

context
TurnContext

(xref:botbuilder-core。此轮次的 TurnContext) 对象。

next

() => Promise<void>

委托调用以继续机器人中间件管道。

返回

Promise<void>

表示异步操作的 Promise。

run(TurnContext, () => Promise<void>)

连续执行一组中间件。

function run(context: TurnContext, next: () => Promise<void>): Promise<void>

参数

context
TurnContext

与用户的当前会话轮次的上下文。

next

() => Promise<void>

在中间件链末尾调用的函数。

返回

Promise<void>

在处理程序链完成后解析的承诺。

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

向集注册中间件处理程序(s)。

function use(middlewares: (context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]): this

参数

middlewares

(context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]

要注册的一个或多个中间件处理程序。

返回

this

更新后的中间件集。

注解

本示例将新的中间件添加到集:

set.use(async (context, next) => {
   console.log(`Leading Edge`);
   await next();
   console.log(`Trailing Edge`);
});