- From: Arthur Stolyar <notifications@github.com>
- Date: Thu, 26 Mar 2015 23:29:45 -0700
- To: whatwg/fetch <fetch@noreply.github.com>
- Message-ID: <whatwg/fetch/issues/27/86841544@github.com>
> In that thread, I suggested that an async function should return an object (ahem, controller) rather than a promise itself.
I am totally with this (if we talking about extending/fixing ```fetch``` itself). I ended up with it [here](https://gist.github.com/NekR/4bb5190e451d164d17b1). Why the hell ```fetch``` should return ```Promise```? Why not ```Fetch``` instance?
So basicly it might look like this:
```javascript
var req = fetch('...'); // new Fetch
// or req.headers
req.response.then(function(response) {
if (response.headers.get('Content-Type') !== 'application/json') {
req.abort(); // or cancel
}
return response.json();
});
req.addEventListener('abort', function() {
// blah blah
});
// or for crazy minds Streams-like way
req.closed.then(function() { ... });
```
... but this is about "fixing" ```fetch```. For me, ```fetch``` seems like a library, like ```$.ajax```. It's nice **wrap**. It's nice API what I can implement with XHR and it's hard for me think about implementing XHR via ```fetch```. XHR easily can have ```xhr.responseType = 'stream'``` or ```xhr.mode = 'no-cors'```.
Guys, please, if you really want low-level API them implement it as a low-level API, not a **promised-cool-shine-thing**, that thing can developer every good (or not) web developer, but real low-level API are able to develop only browser vendors.
---
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/issues/27#issuecomment-86841544
Received on Friday, 27 March 2015 06:30:12 UTC