- 全局
request和response事件request事件:发生在网络操作发生之前response事件:发生在网络操作结束之后
全局 request 和 response 事件
在企业应用场景,常常会有统一 tracer 日志的需求。
为了方便在 app 层面统一监听 HttpClient 的请求和响应,我们约定了全局 request 和 response 来暴露这两个事件。
init options|Vemit `request` event|Vsend request and receive response|Vemit `response` event|Vend
request 事件:发生在网络操作发生之前
请求发送之前,会触发一个 request 事件,允许对请求做拦截。
app.httpclient.on('request', req => {req.url //请求 urlreq.ctx //是发起这次请求的当前上下文// 可以在这里设置一些 trace headers,方便全链路跟踪});
response 事件:发生在网络操作结束之后
请求结束之后会触发一个 response 事件,这样外部就可以订阅这个事件打印日志。
app.httpclient.on('response', result => {result.res.statusresult.ctx //是发起这次请求的当前上下文result.req //对应的 req 对象,即 request 事件里面那个 req});
