请问请求开始穿透中间件层,返回的响应我不太理解。

file
上图是我根据文中的洋葱自己描述的一个请求中间层洋葱。省略了不需要理解的代码。便于观看。
从外向里执行,可以看到多个return。
问题1:
如果在执行某个中间件时不满足条件,抛出异常是不是就终止执行了。
问题2:
执行穿透成功,进行请求分发和内部代码的执行。那么内部代码的返回值是不是在从里到外的返回回来,最终在由
file
这句代码来返回。
问题3:
file
困扰我是这一段代码。在穿透过程中,这段代码是怎么执行的,每次穿透返回的是什么?

yema
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
falling-ts
最佳答案
  • 问题一:
    如果在穿透过程中,遇到异常,的确是终止执行,抛出异常。
  • 问题二:
    是最终由 return $pipeline($this->passable) 返回响应的。并且 Laravel 的执行顺序是 Request 由外往里,在最里面获得 Response,再由里往外返回。
  • 问题三:
    以最上面和最里面的 return $callable($passable) 为例。

file

关于 $slice 返回的内容,具体看父类 carry 方法有没有对 $slice 形参进行函数执行操作。如果进行了执行,那么结果如上图所示,如果没有执行,那么一路返回的是 包含 Response 的一个闭包函数,最终一定在外面进行了 Response 获取。

5年前 评论
讨论数量: 1
falling-ts
  • 问题一:
    如果在穿透过程中,遇到异常,的确是终止执行,抛出异常。
  • 问题二:
    是最终由 return $pipeline($this->passable) 返回响应的。并且 Laravel 的执行顺序是 Request 由外往里,在最里面获得 Response,再由里往外返回。
  • 问题三:
    以最上面和最里面的 return $callable($passable) 为例。

file

关于 $slice 返回的内容,具体看父类 carry 方法有没有对 $slice 形参进行函数执行操作。如果进行了执行,那么结果如上图所示,如果没有执行,那么一路返回的是 包含 Response 的一个闭包函数,最终一定在外面进行了 Response 获取。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!