文档概述了在中间件中使用'await next()'的用例,使得中间件暂停并触发下游中间件,直到所有中间件执行完成,此时上游级联将开始,中间件将完成执行。如果用户想要缩短级联,则仅写'返回'将完全切断级联。
我不理解的是,如果用户返回以下其中之一会发生什么:
const exampleMiddleware1 = async (ctx, next) => {
return await next();
console.log('Doing something');
};
const exampleMiddleware2 = async (ctx, next) => {
next();
console.log('Doing something');
};
const exampleMiddleware3 = async (ctx, next) => {
return next();
console.log('Doing something');
};
在第一个示例中,我认为它将暂停,并触发下一个中间件,但不会在向上级级联执行中完成。
在第二个示例中,我认为下一个中间件将与console.log一起触发,我不认为它会向上级触发,也许?
在第三个示例中,我认为下一个中间件将被触发,但它不会像第一个示例那样在向上级级联中触发console.log。
我的想法正确吗?我正在编写一个koa应用程序,并希望了解更多关于其限制的信息,我发现这是我不清楚的一个领域。
return await
! - Bergi