目标
实现洋葱模型的 compose:中间件按序进入、逆序退出,省略 next 直接短路且不报错,抛错则向上传播并停止后续层。
要点
demo 打印 enter-a,enter-b,core,exit-b,exit-a 的完整顺序与 coreRan=true;测试覆盖错误传播与短路两种非快乐路径。
提示
没有内建错误中间件约定——reject 一路传给调用方,需在那里捕获。
验证
node –test 三个用例;运行 demo 观察洋葱顺序输出。 复现命令:
node --test pipeline.test.mjs
node pipeline.mjs
预期输出要点:The demo prints the execution order enter-a, enter-b, core, exit-b, exit-a followed by the final context field set by the core.
实测证据:Node 22.23.2: node –test -> 3 passed; demo printed enter-a,enter-b,core,exit-b,exit-a followed by coreRan=true.