如果路径不满足,app.usewlcomepage将如何调用下一个中间件app.run?我想我们总是需要等待。下一步()?
是的,我们确实需要一个
await next()
.
但是
已添加到中
WelcomePageMiddleware
. 有关更多详细信息,请参阅的源代码
WelcomePageMiddleware
. 和
app.UseWelcomePage(...)
这里只不过是一个最终调用中间件的扩展方法:
return app.UseMiddleware<WelcomePageMiddleware>(Options.Create(options));
调用是中间件的责任
next
,而不是扩展方法。
作为旁注,通常有4种中间产品:
-
next => context => { /* ... */ }
-
内联样式:
(context,next)=>{ /* ... */ })
-
IMiddleware
接口。
-
按约定的中间件:一个没有接口的类。
,我们叫
等待下一个
或
await next(context)
调用下一个中间件。当与第1种、第3种和第4种中间件一起使用时,我们应该使用
等待下一个(上下文)
而不是
.
在我运行IISExpress的第一个中间件中,我已经注释掉了wait.next()中的以下代码,浏览器正在加载并思考该做什么。在标题选项卡中,简要显示UseWelcome页面中的标题。如果没有链接,这怎么可能?
不知道“如果没有链接”是什么意思。但是,如果您对
等待下一个(上下文)
等待下一个(上下文)
等待下一个(上下文)
,浏览器将在不更改标题的情况下挂起几秒钟,但如果您等待足够的时间,您将得到如下结果
<title>Can't reach this page</title>
或者一个空标题。