Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

160
Views
fetch() cancela con AbortSignal, ¿res.json() también?

Entiendo el flujo de trabajo de cancelar una solicitud en curso con AbortSignal, que es pasarla a las opciones:

 const res = await fetch('/endpoint', { signal }); const data = await res.json();

Sin embargo, ¿qué sucede si la señal se cancela después de que la solicitud haya finalizado, pero antes de que se hayan analizado los datos? Como esto:

 const res = await fetch('/endpoint', { signal }); // Cancel signal here const data = await res.json();

Mis pruebas en Firefox, Chrome y Safari muestran que se cancelará correctamente y se lanzará durante ese res.json() , pero ¿es el comportamiento oficial?

 const log = (...text) => document.body.insertAdjacentHTML('beforeend', `${text.join(' ')}<br />`); (async () => { try { const controller = new AbortController(); const signal = controller.signal; const res = await fetch('https://swapi.dev/api/films/2/', { signal }); log('Request:', signal.aborted); controller.abort(); log('Before:', signal.aborted); const data = await res.json(); log('After:', signal.aborted); } catch (error) { log('Cancelled:', error.name); } })(); // Request: false // Before: true // Cancelled: AbortError

Desde el resultado, podemos ver que se lanza correctamente en res.json() , nunca llega al paso After y se lanza con un AbortError .

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Sí, ese es el comportamiento oficial. json() (y amigos) consumen el cuerpo de la respuesta. Y según el paso 10 de https://fetch.spec.whatwg.org/#dom-global-fetch , ese cuerpo puede terminar en un estado abortado debido a una señal. En ese caso, json() (y amigos) esencialmente volverán a lanzar.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!