Re: [fetch] Aborting a fetch (#27)

@petkaantonov Thanks for explaining that, I have a clearer picture now. But even if we can explain this to people - this little p can kill things, this little p cannot - I see what I think are fundamental problems:

If `a1` cancels, and `a2` cancels, and `a3` cancels, ... why does it follow that `a` should be canceled? This assumes there'll be no more `a.then()`'s, when I can call `var a4 = a.then(...);` at any time.

Also, how to fork a chain without blocking cancelation? Say `getPromise()` has internal stuff it needs to finish after completion:

    function getPromise() {
      var p = asyncImplementation();
      p.catch(() => cleanupStuff());
      return p;
    }

This works fine today, but would now block cancellation. E.g. say you have this long chain where `g1` is the result of `getPromise()`:

    a---b---c---d---f---f---g1---h---i---j---k
                         \
                          g2

Unintended action-at-a-distance, and hard to find why things upstream aren't canceling.

---
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/issues/27#issuecomment-102500578

Received on Friday, 15 May 2015 19:27:58 UTC