Live data from Hacker News

RQ – A small JavaScript library for managing asychronicity

rq.crockford.com

11–20 of 37 posts

Re: RQ – A small JavaScript library for managing asychronicity

#11
Looks interesting but some direct comparisons to es6 promises would really help.

Favourite function description quote: "RQ.parallel does not add parallelism to JavaScript. It allows JavaScript programs to effectively exploit the inherent parallelism of the universe."

Favourite variable name: untilliseconds

Re: RQ – A small JavaScript library for managing asychronicity

#12

I think I must be missing something, because this looks to me like a less-elegant reinvention of the functionality of a handful of already extant promise libraries. A library like 'when' already does all of this, and is much more composable. As an obvious example, there is no reason to clutter up your interfaces with specialized things like timeout parameters when a timeout something you can transparently wrap on any…

Yeah I feel the same way. So many others do this; hell I'm even building a few of these into my current library. Seems like better language constructs for handling asynchronous stuff will be nice (like ES6 promises though obviously it doesn't do everything this library does but it does enough to make it easier to do when needed). Edit: Also where are the unit tests?

+1 for tests.

Re: RQ – A small JavaScript library for managing asychronicity

#13

I'm not sure I'll start using RQ all the time over Promises, but this does offer two nice features that Promises don't: optionals and timeouts. Optionals could easily be implemented as some like Promise.some(), while Promise.[all|some|race]() could all start taking an optional timeout parameter.

`when` and `bluebird` are both good libraries that supports both those features.

Re: RQ – A small JavaScript library for managing asychronicity

#15
Looking at the commit log [1], this code started in May 2013. That might explain why you might be thinking - why not async|bluebird|Promises? It looks like bluebird didn't start until Sept 2013 [2].

[1] https://github.com/douglascrockford/RQ/commits/master [2] https://github.com/petkaantonov/bluebird/commits/master?page...

Re: RQ – A small JavaScript library for managing asychronicity

#16
People keep comparing this to Bluebird, which is great and all, but Bluebird's JS is 72KB minified, whereas this library is just 3KB.

That's what makes this a "small" JavaScript library for managing asynchronicity. And when you're using it for things like choosing which ads to display, etc (like some of the examples) you really don't want your JS load overhead to be very high.

Re: RQ – A small JavaScript library for managing asychronicity

#17
Must be frustrating for Crockford to be in TC39.

He didn't like class keyword, thought typing (TypeScript etc) is a wrong direction. This (albeit it began 2013, but it was just updated) library does not mention ES6 Promises, proposal for async await, or the yield hack.

Re: RQ – A small JavaScript library for managing asychronicity

#18

I think I must be missing something, because this looks to me like a less-elegant reinvention of the functionality of a handful of already extant promise libraries. A library like 'when' already does all of this, and is much more composable. As an obvious example, there is no reason to clutter up your interfaces with specialized things like timeout parameters when a timeout something you can transparently wrap on any…

Yeah I feel the same way. So many others do this; hell I'm even building a few of these into my current library. Seems like better language constructs for handling asynchronous stuff will be nice (like ES6 promises though obviously it doesn't do everything this library does but it does enough to make it easier to do when needed). Edit: Also where are the unit tests?

From a quick glance over Crockford's other repositories on GitHub, it doesn't seem like any of them have unit tests. Is this something he's known for not believing in?

Re: RQ – A small JavaScript library for managing asychronicity

#20

Earlier quoted context omitted.

Yeah I feel the same way. So many others do this; hell I'm even building a few of these into my current library. Seems like better language constructs for handling asynchronous stuff will be nice (like ES6 promises though obviously it doesn't do everything this library does but it does enough to make it easier to do when needed). Edit: Also where are the unit tests?

From a quick glance over Crockford's other repositories on GitHub, it doesn't seem like any of them have unit tests. Is this something he's known for not believing in?

I thought he may have used JSDev[1] to do some unit testing (which I understand why he set it up but it feels so awkward to me) but I don't see anything. No idea; he's certainly talked about the privacy of closing methods and unit testing but I thought he still did it just with JSDev.

[1] https://github.com/douglascrockford/JSDev

Post reply on HN