Middleware interface

接口由基于对象的中间件实现。

方法

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

每次机器人收到新请求时调用。

方法详细信息

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

每次机器人收到新请求时调用。

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

参数

context
TurnContext

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

next

() => Promise<void>

调用以继续执行中间件链中的下一步的函数。

返回

Promise<void>

注解

调用 await next(); 将导致继续执行链中的下一个中间件或机器人主逻辑(如果你是最后一个中间件)。

中间件应在调用 next()之前和/或之后执行其业务逻辑。 可以通过省略对 的调用 next()来使轮次的进一步执行短路。

以下示例演示了一个简单的日志记录中间件:

class MyLogger {
    async onTurn(context, next) {
        console.log(`Leading Edge`);
        await next();
        console.log(`Trailing Edge`);
    }
}