grantila / fetch-h2

HTTP/1+2 Fetch API client for Node.js
MIT License
336 stars 16 forks source link

timeout option has no effect if set on Request #84

Open stefan-guggisberg opened 4 years ago

stefan-guggisberg commented 4 years ago

I assume the following 2 fetch invocations should behave identically, i.e. both should throw a TimeoutError:

A: Passing url and options directly to fetch():

  const resp = await fetch('https://httpbin.org/delay/5', { timeout: 1000 });

B: Passing url and options via Request instance to fetch():

  const req = new Request('https://httpbin.org/delay/5', { timeout: 1000 });
  const resp = await fetch(req);

A throws a TimeoutError as expected. B OTOH ignores the timeout option and succeeds.