Conceptos básicos de Fetch

La API Fetch proporciona una interfaz para obtener recursos (incluso a traves de la red). Parecera familiar a quien sea que haya usado XMLHttpRequest, pero proporciona un conjunto de características más potentes y flexibles. Este artículo explica algunos de los conceptos básicos de la API Fetch.

Nota: Este artículo será añadido en un futuro. Si encuenta un concepto de Fetch que siente necesita una mejor explicación, hagalo saber a alguien en el foro de discusión de MDN, o Mozilla IRC (#mdn room.)

En pocas palabras

En el corazón de Fetch estan las abstracciones de interfaz de cargas de HTTP Requests, Responses, Headers, y Body, junto a un método global fetch (en-US) para inicializar peticiones de recurso asíncronos. Porque los prinipales componentes de HTTP son abstraídos como objetos Javascript, es sencillo para otras APIs el hacer uso de dicha funcionalidad.

Service Workers (en-US) es un ejemplo de una API que hace un fuerte uso de Fetch.

Fetch toma la naturaleza asíncrona de dichas peticiones un paso adelante. La API esta completamente basada en Promise.

Guard

Guard es una característica de objetos Headers, con los valores posibles immutable, request, request-no-cors, response, o none, dependiendo de donde el encabezado es usado.

Cuando un nuevo objeto Headers es creado usando el Headers() (en-US) constructor, su guarda (guard) se establece a none (por defecto). Cuando un objeto Request o Response es creado, tiene un objeto Headers asociado cuyo guarda (guard) se establece como se resume a continuación:

nuevo tipo de objeto creando el constructor configuraciones de guarda (guard) del objeto Headers asociado
Request Request() (en-US) request
Request() (en-US) con mode (en-US) de no-cors request-no-cors
Response Response() response
Métodos error() (en-US) o redirect() (en-US) immutable

Un guarda (guard) de encabezado afecta los métodos set() (en-US), delete() (en-US), y append() (en-US) que cambían los contenidos del encabezado. Un TypeError es arrojado si se trata modificar un objeto Headers cuyo guarda (guard) es immutable. Sin embargo, la operación funcionará si