In the following example:
import { $ } from "https://deno.land/x/dax@0.24.1/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 :)
In the following example:
unless
example.comresponds alarmingly fast, this code will throw anAbortErrorwhen the request is aborted thanks to thetimeout(10).This is the expected behavior of the abort controller, but in my opinion, is unexpected when the method you chain onto the
RequestBuilderis called "noThrow".In my opinion, either of the following would help things be more intuitive when
noThrowis set and atimeoutis triggered:(a) rename
noThrowto something else (ignoreHTTPStatus?) - this is a breaking change, but maybe with the module atv <1.0.0, that's ok?(b) chain a
catchonto theRequestBuilder.fetchmethod which simply returnsundefinedThis is just a suggestion, so as always feel free to close as
won't fixif 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 :)