在讨论了上述 before 处理程序的示例之后,接下来我们来看一下 after 处理器的实现。
在处理器上的 之后执行处理器后,通常用于丰富出站数据。
例如,我们将为目录服务创建后处理程序:对于库存超过 200 的书,我们希望提供 11% 的折扣。为此,使用字符串" -- 11% 折扣!"通过 after handler 将 附加到库存超过 200 的所有书的标题中。
我们以与实施之前处理器相同的方式进行。换句话说,我们在项目的 srv 文件夹中创建名为 cat-service.js 的文件,因为此文件夹还包含用于定义 CatalogService 的文件 cat-service.cds(请参阅下图)。

与之前处理器讨论的内容类似,我们在 cat-service.js 文件中创建 cds.ApplicationService 的子类,我们将其称为 CatalogService。
为了操作书名,我们现在需要一个后处理程序,该处理器应该在 Books 实体上注册 READ 操作。为此,我们在创建的实施类中覆盖继承的 init() 方法(请参阅下图)。

要在 init() 方法中注册 after 处理程序,请通过 this.after() 调用继承的 after() 方法。after() 方法具有以下接口。可在 CAP 文档中找到各个参数的详细描述。
12345function after (
event : string | string[] | '*',
entity? : CSN definition | CSN definition[] | string | string[] | '*',
handler : function
)在所示示例中,我们为 Books 实体上的 READ 操作注册指定的函数 this.grantDiscount。为此,我们像上面讨论的前一个处理程序一样进行注册。

