Re: [streams] Convert readable stream pull() to promise-returning (#272)

> +    }
> +  });
> +
> +  t.equal(rs.state, 'waiting', 'stream starts out waiting');
> +
> +  rs.ready.then(() => {
> +    t.equal(rs.state, 'readable', 'stream becomes readable (even before promise fulfills)');
> +    t.equal(timesCalled, 1, 'pull is not yet called a second time');
> +    t.equal(rs.read(), 1, 'read() returns enqueued value');
> +
> +    setTimeout(() => {
> +      t.equal(timesCalled, 1, 'after 30 ms, pull has still only been called once');
> +
> +      resolve();
> +
> +      returnedPromise.then(() => {

Yes, it works. But we don't have to use `returnedPromise`. As we're fulfilling `returnedPromise` on L315, we're sure that `returnedPromise` is fulfilled at L317. So, L317 is just putting the closure into the microtask queue. We can also use Promise.resolve(undefined).then(...) there.

Here what we want to test is

> `pull()` will be called once the returnedPromise is resolved.

`Once ...` corresponds to L315. Yes, it's relevant to `returnedPromise`.

`pull() ...` is what we want to verify on L317. This is irrelevant to `returnedPromise`.

Use of `returnedPromise` at L317 (though it works) makes the verification step look depending on `returnedPromise`. So, it looked misleading to me.

---
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/pull/272/files#r24222598

Received on Friday, 6 February 2015 04:52:27 UTC