gens

Experimental usage of generators for continuables

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.

// 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 (errresult) {
    if (err) {
        throw err
    }
 
    console.log("post", result.post, "taggedPosts", result.taggedPosts)
 
    client.quit()
})

npm install gens

  • Raynos