Skip to content

Comment on An open question (rant) about Node.jsparent

Comments

Actually, it's not promises. It's generators.

co thunkifies promises: https://github.com/visionmedia/co/blob/master/index.js#L209-...

Actually, it's not promises. It's generators.

The generator is the driver, but the driver on its own its useless if it's got nothing to drive.

And what it has to drive is promises (or thunks since most existing node code is thunks-based I guess it makes sense to support that. taskjs uses promises more or less exclusively for the same purpose, Python 3.4's asyncio uses behaving much like JS promises, etc...)

Seems you have misunderstood how it works. https://github.com/visionmedia/co/blob/master/index.js

Typically in apps using 'co', functions will return generators, not promises. Promises were probably added because of all the existing code out there.

Here is a file from my ongoing project, should explain how generators are being used. See getPosts() or addPost() https://github.com/jeswin/fora/blob/master/server/src/models...

[Edit: Just read your earlier (Gr.GP) comment. Might want to avoid the unnecessary snark, especially when there's a chance you might be wrong.]

Seems you have misunderstood how it works. https://github.com/visionmedia/co/blob/master/index.js

No.

Typically in apps using 'co', functions will return generators, not promises. Promises were probably added because of all the existing code out there.

Again, generators in and of themselves don't do anything (for async code). Something needs to be generated/yielded, and that thing is the reification of an asynchronous operation. Such as a promise[0]. Generators and promises fulfil different roles, generators are used as imperative "sugar" for chaining promises.

The generators you yield will ultimately resolve into a series of async operations (promises or "thunks"), yielding a generator is convenience (not very useful convenience either, since `yield*` exists the ability to yield generators just complexifies the driver)

[0] and in the case of co a "thunk"[1], because node

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.