文档概述了在中间件中使用“ await next()”的用例,使中间件暂停并触发下游的下一个中间件,直到所有中间件执行完毕为止,此时上游级联将开始并且中间件将完成执行。而且,如果用户希望缩短级联,则仅编写“ return”将一起削减级联。
我不明白的是,如果用户返回以下内容之一,将会发生什么:
{
"Data" : value
}
在第一个示例中,我认为它将暂停,触发下一个中间件,但不会完成向上级联的执行。
在第二个示例中,我认为下一个中间件将与console.log一起触发,我不认为它会向上触发吗?
在第三个示例中,我认为将触发下一个中间件,但不会触发向上级联的控制台日志,与第一个示例相同。
我的想法正确吗?我正在写一个koa应用程序,想了解更多有关其局限性的信息,但我发现这一领域我不清楚。
答案 0 :(得分:2)
exampleMiddleware1 和 exampleMiddleware3 是相同的(无需返回等待状态)
exampleMiddleware2
如果下一个中间件返回承诺
如果下一个中间件不返回承诺