gens

Experimental usage of generators

MIT License

Downloads
30
Stars
17

gens

Experimental usage of generators for continuables

async takes a generator and returns a continuable. It's expected that the values you yield are continuables themself.

Example

// run this with --use-strict --harmony on node v0.11.3
let Redis = require("redis")
let console = require("console")
let async = require("gens")
let parallel = require("gens/parallel")

let client = Redis.createClient()

async(function* () {
    yield client.hmset.bind(client, "blog::post", {
        date: "20130605",
        title: "g3n3rat0rs r0ck",
        tags: "js,node"
    })

    let post = yield client.hgetall.bind(client, "blog::post")
    let tags = post.tags.split(",")
    let taggedPosts = yield parallel(tags.map(function (tag) {
        return client.hgetall.bind(client, "post::tag::" + tag)
    }))

    return { post: post, taggedPosts: taggedPosts }
})(function (err, result) {
    if (err) {
        throw err
    }

    console.log("post", result.post, "taggedPosts", result.taggedPosts)

    client.quit()
})

Installation

npm install gens

Contributors

  • Raynos

MIT Licenced

Package Rankings
Top 12.52% on Npmjs.org
Badges
Extracted from project README
build status NPM version dependency status