Description
In the following example:
import { $ } from "https://deno.land/x/[email protected]/mod.ts";
await $.request("https://example.com").noThrow().timeout(10).fetch();
unless example.com
responds alarmingly fast, this code will throw an AbortError
when the request is aborted thanks to the timeout(10)
.
This is the expected behavior of the abort controller, but in my opinion, is unexpected when the method you chain onto the RequestBuilder
is called "noThrow
".
In my opinion, either of the following would help things be more intuitive when noThrow
is set and a timeout
is triggered:
(a) rename noThrow
to something else (ignoreHTTPStatus
?) - this is a breaking change, but maybe with the module at v <1.0.0
, that's ok?
(b) chain a catch
onto the RequestBuilder.fetch
method which simply returns undefined
This is just a suggestion, so as always feel free to close as won't fix
if you feel that the API already makes sense for the majority of users, but wanted to surface the idea just in case!
Cheers, and thanks for considering :)