В документации описывается сценарий использования «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, я не думаю, что оно сработает при повышении, может быть?
В третьем примере, я думаю, будет запущено следующее промежуточное программное обеспечение, но оно не будет запускать журнал консоли в восходящем каскаде, так же, как в первом примере.
Правильно ли мое мышление? Я пишу приложение для коа и хотел бы узнать больше о его пределах, и я нахожу эту область, которую я не совсем понимаю.