# FetchEvent生命周期
在Workers运行时中使用[`fetch`事件](https://developers.cloudflare.com/workers/reference/apis/fetch-event)时,有助于了解其生命周期。
当Cloudflare的边缘网络接收到URL匹配Workers函数的区域和路由的请求时,[FetchEvent](https://developers.cloudflare.com/workers/reference/apis/fetch-event)生命周期开始。这将导致Workers运行时触发一个`fetch`事件,并创建一个FetchEvent对象传递给为注册的Workers函数中的第一个事件处理程序`'fetch'`。然后,事件处理程序可以使用以下任意项来控制接下来发生的事情:
## `RespondWith()`
拦截请求并允许用户发送自定义响应。
如果`fetch`事件处理程序未调用`respondWith()`,则运行时会将事件传递到下一个注册的`fetch`事件处理程序。如果没有事件处理程序调用`respondWith()`,则运行时将请求代理到源。注意:如果未设置任何来源(对于worker.dev站点始终为true),则必须`respondWith()`调用一个有效响应。
## `WaitUntil()`
使用`Promise`传递给函数的方法来延长事件的生存期。使用此方法通知运行时以等待比发送响应所花费的时间更长的任务(例如流和缓存)。这对于处理您不想阻止的第三方服务的日志记录和分析非常有用`response`。
## `PassThroughOnException()`
导致脚本在未处理的异常上“无法打开”(意味着代码的执行不会停止)。运行时将请求代理到其目的地,而不是返回运行时错误响应。为防止JavaScript错误导致整个请求因未捕获的异常而失败,请`passThroughOnException()`使Workers运行时将控制权交给原始服务器。
- 关于本翻译文档
- 快速开始
- 模版库
- 讲解
- Workers页面
- 从0开始
- 从已有页面开始
- 从已有Worder开始
- 工具
- Cli工具 wrangler
- 安装
- 指令
- 配置
- 环境
- Webpack
- 密钥
- KV
- 网站
- Playground
- ServerLess插件
- Terraform
- REST API
- Making Requests
- Scripts
- Bindings
- Routes
- Integrations
- 相关
- 工作原理
- 安全
- 使用缓存
- 价格
- Routes
- Limits
- 提示
- 调试技巧
- 调试header
- FetchEvent生命周期
- 请求上下文
- 请求sign
- 参考
- runtime API
- Web Standards
- fetch
- fetchEvent
- Response
- Request
- KV
- Environment Variables
- Streams
- Encoding
- Web Crypto
- Cache API
- HTMLRewriter
- Workers KV
- Use cases
- Namespaces
