4 ms·
Fetch support is awful. Rachel McAdams knew the future.
by criswell 10y ago
Fetch support is awful. Rachel McAdams knew the future.
- sotojuan 10y agoPlenty of polyfills out there. I mentioned it because it's a lot lighter than superagent or worse, request.
- icecube 10y agoHonest question, what is wrong with request (and superagent)? Is it just size or something more? I am only asking because yesterday I was looking for a promise supported library and I was comparing superagent (with its promise wrapper), request-promise, axios and node-fetch. I have narrowed it down to axios and fetch but I would like to hear your opinion on the matter.
- sotojuan 10y agoThe size. For a Node app, maybe not so bad (though I'd use node-fetch or got[1] which are smaller). For a browser app, loading all of superagent (which is almost 2 megabytes) just to make a few GET and POST calls is silly. Never used axios but I've heard good things about it and its creator is awesome. I just use fetch because it does what I want. [1] https://github.com/sindresorhus/got https://github.com/sindresorhus/got
- icecube 10y agoWow, had no idea that request was so bloated. And thanks for mentioning got. I just checked it out and I think that is the lib I will be going with on the backend. I love the stream support, very cool.
- therealmarv 10y ago+1 for fetch. Use the good github fetch polyfill for old browsers https://github.com/github/fetch https://github.com/github/fetch
- nilliams 10y agoI tried fetch, the polymorphic-fetch module that builds on this github one and found it doesn't support .finally(), or work with the promise.finally polyfill (yes I know it's not in the spec, but seriously). Also sinon.js couldn't mock it, and dealing with error cases is inelegant (it doesn't look like much extra code, but is hard to justify if you're just writing a small component that hits one endpoint, in terms of weird new code to explain to your teammates that is). I have gone back to $.ajax for now, though I do mean to try out qwest [1] when I get the chance. Seems to be both tiny and also have a sane promise-y API. [1] https://github.com/pyrsmk/qwest https://github.com/pyrsmk/qwest
- therealmarv 10y agoWhy you want stuff which is not in the spec? It's not in the spec it's not in the polyfill :/ Why the fetch from Github is not good enough for you?
- nilliams 10y agoBecause needing to do something regardless of success or failure is incredibly common (e.g. stop a progress bar, re-enable form inputs & buttons). The (promises) spec is lacking w.r.t. this use-case, and most ajax libraries (and a lot or promise libraries) recognise this by implementing a 'finally' equivalent.
- krat0sprakhar 10y agoIf someone else (like me) misses the Rachel McAdams reference: https://jakearchibald.com/static/posts/thats-so-fetch/fetch.79da5d42b666.webm https://jakearchibald.com/static/posts/thats-so-fetch/fetch.... Blog post - https://jakearchibald.com/2015/thats-so-fetch/ https://jakearchibald.com/2015/thats-so-fetch/