undici icon indicating copy to clipboard operation
undici copied to clipboard

abortcontroller & request.clone issue with fetch

Open KhafraDev opened this issue 1 year ago • 0 comments

  import { Request } from 'undici'
  import { ok, strictEqual } from 'node:assert'

  const controller = new AbortController();
  const signal = controller.signal;

  const request = new Request('http://a', { signal });
  const clonedRequest = request.clone();

  const log = [];

  request.signal.addEventListener('abort', () => log.push('original-aborted'));
  clonedRequest.signal.addEventListener('abort', () => log.push('clone-aborted'));

  controller.abort();

  strictEqual(log, ['original-aborted', 'clone-aborted'], "Abort events fired in correct order");
  ok(request.signal.aborted, 'Signal aborted');
  ok(clonedRequest.signal.aborted, 'Signal aborted');

cc @atlowChemi since you recently made a PR regarding abortcontroller, hopefully you can help. I don't know enough about EventTarget and order of events to fix this

KhafraDev avatar Aug 25 '23 22:08 KhafraDev